Author: Jason Molenda Date: 2021-09-10T16:56:48-07:00 New Revision: 89ed21a8f864b1c33a95ed127d073842adc2fcd0
URL: https://github.com/llvm/llvm-project/commit/89ed21a8f864b1c33a95ed127d073842adc2fcd0 DIFF: https://github.com/llvm/llvm-project/commit/89ed21a8f864b1c33a95ed127d073842adc2fcd0.diff LOG: 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 Added: Modified: lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp Removed: ################################################################################ diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp index 91b1682ad001..a14e45c16c5c 100644 --- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp +++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp @@ -251,6 +251,7 @@ bool DynamicLoaderMacOSXDYLD::ReadDYLDInfoFromMemoryAndSetNotificationCallback( std::lock_guard<std::recursive_mutex> baseclass_guard(GetMutex()); DataExtractor data; // Load command data static ConstString g_dyld_all_image_infos("dyld_all_image_infos"); + static ConstString g_new_dyld_all_image_infos("dyld4::dyld_all_image_infos"); if (ReadMachHeader(addr, &m_dyld.header, &data)) { if (m_dyld.header.filetype == llvm::MachO::MH_DYLINKER) { m_dyld.address = addr; @@ -268,6 +269,10 @@ bool DynamicLoaderMacOSXDYLD::ReadDYLDInfoFromMemoryAndSetNotificationCallback( dyld_module_sp.get()) { const Symbol *symbol = dyld_module_sp->FindFirstSymbolWithNameAndType( g_dyld_all_image_infos, eSymbolTypeData); + if (!symbol) { + symbol = dyld_module_sp->FindFirstSymbolWithNameAndType( + g_new_dyld_all_image_infos, eSymbolTypeData); + } if (symbol) m_dyld_all_image_infos_addr = symbol->GetLoadAddress(&target); } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits