labath added a comment. In D55142#1320447 <https://reviews.llvm.org/D55142#1320447>, @lemo wrote:
> I agree with both comments. The intention is to add some tests but I wanted > to get the review out early to surface concerns, if any. I also needed more > time to investigate a few complex failures uncovered by this change (ex. > https://bugs.llvm.org/show_bug.cgi?id=39882 and > https://bugs.llvm.org/show_bug.cgi?id=39897) > > Yes, this change can also be split in three parts: the reason it's bundled up > in this review is that all three parts are required to enable the basic > functionality (and overall it's a relatively small change). Maybe it was > better if I sent out the parts separately, but right now I'd like to preserve > the continuity in the review comments. > I'm about to send out a new revision and once this review satisfies all the > comments I'll split it out and send individual reviews. Sounds good. I think it would be nice to see the isolated patches standing next to their tests. ================ Comment at: source/Plugins/Process/minidump/ProcessMinidump.cpp:134-136 lldb::SectionSP section_sp(new Section( shared_from_this(), // Module to which this section belongs. + GetObjectFile(), // ObjectFile ---------------- I don't know whether you'll run into any problems because of this, but the way this works for "normal" object files is that the each object file has a list of "own" sections, and then the Module has a "unified" list, which contains the sections of the main object file possibly combined with sections from the symbol object files. Here you are adding a section to the unified list without adding it to the object file, which is a bit nonstandard. I think it would be better to just add it to both places. ================ Comment at: source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp:106 static std::unique_ptr<PDBFile> -loadMatchingPDBFile(std::string exe_path, llvm::BumpPtrAllocator &allocator) { - // Try to find a matching PDB for an EXE. +loadMatchingPDBFile(lldb_private::ObjectFile *obj_file, + llvm::BumpPtrAllocator &allocator) { ---------------- lemo wrote: > zturner wrote: > > Perhaps `obj_file` should be a reference just to clarify that it can't be > > null. > That would make sense. Unfortunately, obj_file can't be const > (ObjectFile::GetUUID() is non const and it's not easy to surgically fix it) > > So we'd have to pass by non-const ref, which would read "out-parameter", > which IMO is more confusing than the non-null part is worth. I don't think the `ObjectFile&` would be an out-parameter any more than the existing `BumpPtrAllocator&` is an out-parameter. So making this a reference would also make things locally consistent. ================ Comment at: source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp:150 + auto uuid_bytes = uuid.GetBytes(); + if (uuid_bytes.size() != sizeof(llvm::codeview::GUID) + 4) // CvRecordPdb70 + return nullptr; ---------------- make this `sizeof(guid)` for consistency. ================ Comment at: source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp:171-174 + // TODO: we need to compare the age, in addition to the GUID if (expected_info->getGuid() != guid) return nullptr; + ---------------- Mainly out of curiosity, what's the complication here? The llvm interface does not provide the means to retrieve the age? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55142/new/ https://reviews.llvm.org/D55142 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits