8from distutils.version
import LooseVersion
13 if not reload_module
and MODULE_NAME
in sys.modules:
14 del sys.modules[MODULE_NAME]
16 if sys.version_info[0] >= 3:
17 sys.path.append(os.path.dirname(path))
18 bridge = imp.load_source(MODULE_NAME, path)
20 if not hasattr(bridge,
'__lldb_init_module'):
25 session_dict[MODULE_NAME] = bridge
28 bridge.__lldb_init_module(debugger, session_dict)
30 if not debugger.GetCategory(
'Qt'):
32 del session_dict[MODULE_NAME]
37def __lldb_init_module(debugger, session_dict):
41 if MODULE_NAME
in sys.modules:
42 module = sys.modules[MODULE_NAME]
44 bridge =
import_bridge(module.__file__, debugger, session_dict,
50 for path
in os.popen(
'mdfind kMDItemCFBundleIdentifier=org.qt-project.qtcreator'):
52 file =
open(os.path.join(path,
'Contents',
'Info.plist'),
"rb")
55 plist = plistlib.load(file)
58 for key
in [
"CFBundleVersion",
"CFBundleShortVersionString"]:
64 print(f
"Could not resolve version for '{path}'. Ignoring.")
67 versions[version] = path
70 print(
"Could not find Qt Creator installation. No Qt summary providers installed.")
73 for version
in sorted(versions, key=LooseVersion, reverse=
True):
74 path = versions[version]
75 print(f
"Loading Qt summary providers from Creator {version} in '{path}'")
76 bridge_path =
'{}/Contents/Resources/debugger/lldbbridge.py'.format(path)
import_bridge(path, debugger, session_dict, reload_module=False)
file open(QIODevice::ReadOnly)