mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 08:56:07 +00:00

The loop searching for use_lldb_suite_root had a bug where if the marker file happened to be missing, it would enter an infinite loop. While this shouldn't happen in normal circumstances, it can happen accidentally, and debugging it is not very pleasant. The loop had an exit condition, but it was incorrent (os.path.dirname returning None). This will never happen as dirname will just return the same folder over and over again once it reaches the root folder. This fixes the exit condition to account for that. llvm-svn: 353406
28 lines
721 B
Python
28 lines
721 B
Python
import inspect
|
|
import os
|
|
import sys
|
|
|
|
|
|
def find_lldb_root():
|
|
lldb_root = os.path.dirname(inspect.getfile(inspect.currentframe()))
|
|
while True:
|
|
parent = os.path.dirname(lldb_root)
|
|
if parent == lldb_root: # dirname('/') == '/'
|
|
break
|
|
lldb_root = parent
|
|
|
|
test_path = os.path.join(lldb_root, "use_lldb_suite_root.py")
|
|
if os.path.isfile(test_path):
|
|
return lldb_root
|
|
return None
|
|
|
|
lldb_root = find_lldb_root()
|
|
if lldb_root is not None:
|
|
import imp
|
|
fp, pathname, desc = imp.find_module("use_lldb_suite_root", [lldb_root])
|
|
try:
|
|
imp.load_module("use_lldb_suite_root", fp, pathname, desc)
|
|
finally:
|
|
if fp:
|
|
fp.close()
|