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);
 


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);
 
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to