For PE/COFF files, the Age is also in the executable and Guid+Age actually constitute a 20-byte UUID. Is this not the case on Apple? What object file format are you dealing with? On Wed, Aug 29, 2018 at 10:11 AM Greg Clayton via Phabricator < revi...@reviews.llvm.org> wrote:
> 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); > > > >
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits