Skip to content

Commit 5852614

Browse files
committed
Recognize namespaced all_image_infos symbol name from dyld
In macOS 12, the symbol name for the dyld_all_image_infos struct in dyld has a namespace qualifier. Search for it without qualification, then with qualification when doing a by-name search. (lldb will only search for it by name when loading a user process Mach-O corefile) rdar://76270013 (cherry picked from commit 89ed21a)
1 parent 95002af commit 5852614

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ bool DynamicLoaderMacOSXDYLD::ReadDYLDInfoFromMemoryAndSetNotificationCallback(
251251
std::lock_guard<std::recursive_mutex> baseclass_guard(GetMutex());
252252
DataExtractor data; // Load command data
253253
static ConstString g_dyld_all_image_infos("dyld_all_image_infos");
254+
static ConstString g_new_dyld_all_image_infos("dyld4::dyld_all_image_infos");
254255
if (ReadMachHeader(addr, &m_dyld.header, &data)) {
255256
if (m_dyld.header.filetype == llvm::MachO::MH_DYLINKER) {
256257
m_dyld.address = addr;
@@ -268,6 +269,10 @@ bool DynamicLoaderMacOSXDYLD::ReadDYLDInfoFromMemoryAndSetNotificationCallback(
268269
dyld_module_sp.get()) {
269270
const Symbol *symbol = dyld_module_sp->FindFirstSymbolWithNameAndType(
270271
g_dyld_all_image_infos, eSymbolTypeData);
272+
if (!symbol) {
273+
symbol = dyld_module_sp->FindFirstSymbolWithNameAndType(
274+
g_new_dyld_all_image_infos, eSymbolTypeData);
275+
}
271276
if (symbol)
272277
m_dyld_all_image_infos_addr = symbol->GetLoadAddress(&target);
273278
}

0 commit comments

Comments
 (0)