[Lldb-commits] [lldb] Change debugserver to report the cpu(sub)type of process, not the host. (PR #82938)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Mon Feb 26 09:54:42 PST 2024
================
@@ -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
More information about the lldb-commits
mailing list