llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Dave Lee (kastiglione) <details> <summary>Changes</summary> First, `SRE_Pattern` does not exist on newer Python's, use `type(re.compile(''))` like other Python extensions do. The dynamic type is because some earlier versions of Python 3 do not have `re.Pattern`. Second, `SBModule` has a `file` property, not a `path` property. --- Full diff: https://github.com/llvm/llvm-project/pull/116452.diff 2 Files Affected: - (modified) lldb/bindings/interface/SBTargetExtensions.i (+2-2) - (modified) lldb/test/API/lang/cpp/stl/TestStdCXXDisassembly.py (+6-9) ``````````diff diff --git a/lldb/bindings/interface/SBTargetExtensions.i b/lldb/bindings/interface/SBTargetExtensions.i index d756a351a810ab..43125d8970615b 100644 --- a/lldb/bindings/interface/SBTargetExtensions.i +++ b/lldb/bindings/interface/SBTargetExtensions.i @@ -79,11 +79,11 @@ STRING_EXTENSION_LEVEL_OUTSIDE(SBTarget, lldb::eDescriptionLevelBrief) module = self.sbtarget.GetModuleAtIndex(idx) if module.uuid == key: return module - elif type(key) is re.SRE_Pattern: + elif isinstance(key, type(re.compile(''))): matching_modules = [] for idx in range(num_modules): module = self.sbtarget.GetModuleAtIndex(idx) - re_match = key.search(module.path.fullpath) + re_match = key.search(module.file.fullpath) if re_match: matching_modules.append(module) return matching_modules diff --git a/lldb/test/API/lang/cpp/stl/TestStdCXXDisassembly.py b/lldb/test/API/lang/cpp/stl/TestStdCXXDisassembly.py index 06f338b3ed1ded..bcf8735c7c3f98 100644 --- a/lldb/test/API/lang/cpp/stl/TestStdCXXDisassembly.py +++ b/lldb/test/API/lang/cpp/stl/TestStdCXXDisassembly.py @@ -3,6 +3,7 @@ """ import os +import re import lldb from lldbsuite.test.lldbtest import * import lldbsuite.test.lldbutil as lldbutil @@ -30,15 +31,11 @@ def test_stdcxx_disasm(self): self.runCmd("disassemble -n '%s'" % function.GetName()) lib_stdcxx = "FAILHORRIBLYHERE" - # Iterate through the available modules, looking for stdc++ library... - for i in range(target.GetNumModules()): - module = target.GetModuleAtIndex(i) - fs = module.GetFileSpec() - if fs.GetFilename().startswith("libstdc++") or fs.GetFilename().startswith( - "libc++" - ): - lib_stdcxx = str(fs) - break + # Find the stdc++ library... + stdlib_regex = re.compile(r"/lib(std)?c\+\+") + for module in target.module[stdlib_regex]: + lib_stdcxx = module.file.fullpath + break # At this point, lib_stdcxx is the full path to the stdc++ library and # module is the corresponding SBModule. `````````` </details> https://github.com/llvm/llvm-project/pull/116452 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits