forked from OSchip/llvm-project
71b88b91f7
Summary: D59433 added code to swap bytes UUIDs coming from minidump files, but only enabled it for apple platforms. Based on my research, I believe this is the correct thing to do for windows as well, as the natural way of printing U(G)UIDs on this platforms is to print the first three components as (4 or 2)-byte integers printed in natural (big-endian) order. This makes the UUID string coming out of lldb match the strings produced by other windows tools. The decision to byte-swap the age field is somewhat arbitrary, because the age field is usually printed separately from the file GUID (and often in decimal). However, for our purposes (telling whether two files are identical), including it in the UUID is correct, and printing it in big-endian makes it easier to recognize the age value. This also makes the UUIDs generated here (almost) match up with the UUIDs computed for breakpad symbol files (BreakpadRecords.cpp:parseModuleId), which already implemented the byte-swapping. The "almost" is here because ObjectFileBreakpad does not swap the age field, but I'll fix that in a follow-up. There is no UUID support in ObjectFileCOFF at the moment, but ideally the algorithms used here and in ObjectFileCOFF should be in sync so that object file matching works correctly. Reviewers: clayborg, amccarth, markmentovai, asmith Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D60501 llvm-svn: 358169 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
MinidumpParser.cpp | ||
MinidumpParser.h | ||
MinidumpTypes.cpp | ||
MinidumpTypes.h | ||
NtStructures.h | ||
ProcessMinidump.cpp | ||
ProcessMinidump.h | ||
RegisterContextMinidump_ARM.cpp | ||
RegisterContextMinidump_ARM.h | ||
RegisterContextMinidump_ARM64.cpp | ||
RegisterContextMinidump_ARM64.h | ||
RegisterContextMinidump_x86_32.cpp | ||
RegisterContextMinidump_x86_32.h | ||
RegisterContextMinidump_x86_64.cpp | ||
RegisterContextMinidump_x86_64.h | ||
ThreadMinidump.cpp | ||
ThreadMinidump.h |