================ @@ -1111,6 +1111,23 @@ static bool mach_header_validity_test(uint32_t magic, uint32_t cputype) { return FormatDynamicLibrariesIntoJSON(image_infos, report_load_commands); } +std::optional<std::pair<cpu_type_t, cpu_subtype_t>> +MachProcess::GetMainBinaryCPUTypes(nub_process_t pid) { + int pointer_size = GetInferiorAddrSize(pid); + std::vector<struct binary_image_information> image_infos; + GetAllLoadedBinariesViaDYLDSPI(image_infos); + uint32_t platform = GetPlatform(); + for (auto &image_info : image_infos) + if (GetMachOInformationFromMemory(platform, image_info.load_address, + pointer_size, image_info.macho_info)) + if (image_info.macho_info.mach_header.filetype == MH_EXECUTE) + return { + {static_cast<cpu_type_t>(image_info.macho_info.mach_header.cputype), + static_cast<cpu_subtype_t>( + image_info.macho_info.mach_header.cpusubtype)}}; + return {}; ---------------- JDevlieghere wrote:
Nit: I think this would benefit from extra braces. The [developer policy](https://llvm.org/docs/CodingStandards.html#don-t-use-braces-on-simple-single-statement-bodies-of-if-else-loop-statements) says that you can add braces if it helps readability and there's an example with two levels of indentation that's a lot simpler than this one. https://github.com/llvm/llvm-project/pull/82938 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits