[Lldb-commits] [PATCH] D51442: Don't include the Age in the UUID for CvRecordPdb70 UUID records in minidump files

Greg Clayton via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Aug 29 10:11:58 PDT 2018


clayborg created this revision.
clayborg added reviewers: zturner, labath, dvlahovski, lemo.

The CvRecordPdb70 structure looks like:

  struct CvRecordPdb70 {
    uint8_t Uuid[16];
    llvm::support::ulittle32_t Age;
    // char PDBFileName[];
  };

We are currently including the "Age" in the UUID which seems wrong. I am proposing this fix to avoid including the age in the UUID since it is wrong for Apple targets. We want the UUID of a module to match the UUID that would be found in executable files. I can modify this patch to only do this for Apple vendors in the target triple if needed, but it seemed like this would be the functionality that people would expect on all targets, so I will start with this patch and see what people think.


https://reviews.llvm.org/D51442

Files:
  source/Plugins/Process/minidump/MinidumpParser.cpp


Index: source/Plugins/Process/minidump/MinidumpParser.cpp
===================================================================
--- source/Plugins/Process/minidump/MinidumpParser.cpp
+++ source/Plugins/Process/minidump/MinidumpParser.cpp
@@ -81,7 +81,7 @@
     const CvRecordPdb70 *pdb70_uuid = nullptr;
     Status error = consumeObject(cv_record, pdb70_uuid);
     if (!error.Fail())
-      return UUID::fromData(pdb70_uuid, sizeof(*pdb70_uuid));
+      return UUID::fromData(pdb70_uuid->Uuid, sizeof(pdb70_uuid->Uuid));
   } else if (cv_signature == CvSignature::ElfBuildId)
     return UUID::fromData(cv_record);
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51442.163131.patch
Type: text/x-patch
Size: 617 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20180829/2fdc040f/attachment.bin>


More information about the lldb-commits mailing list