[lldb] Add more dylib paths for exception breakpoints

When setting a breakpoint upon throwing exceptions, LLDB only
searches for the libc++abi code inside dylibs named:
  1. libc++abi.dylib
  2. libSystem.B.dylib

However, this fails to account for libs with a version number. For
example, when building the libcxx and libcxxabi runtimes, the following
dylibs are generated:

build/lib/libc++abi.1.0.dylib
build/lib/libc++abi.1.dylib -> libc++abi.1.0.dylib
build/lib/libc++abi.dylib -> libc++abi.1.dylib

If we are debugging a program linked against any of the "versioned"
libs, the breakpoint doesn't work. This commit adds these names to the
search list.

Differential Revision: https://reviews.llvm.org/D132598
This commit is contained in:
Felipe de Azevedo Piovezan 2022-08-24 16:03:29 -04:00
parent e3e9082b01
commit baeb17cdfa
1 changed files with 2 additions and 0 deletions
lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI

View File

@ -453,6 +453,8 @@ lldb::SearchFilterSP ItaniumABILanguageRuntime::CreateExceptionSearchFilter() {
// Apple binaries.
filter_modules.EmplaceBack("libc++abi.dylib");
filter_modules.EmplaceBack("libSystem.B.dylib");
filter_modules.EmplaceBack("libc++abi.1.0.dylib");
filter_modules.EmplaceBack("libc++abi.1.dylib");
}
return target.GetSearchFilterForModuleList(&filter_modules);
}