[llvm-bugs] [Bug 37991] New: Add a mode to llvm-pdbutil that allows re-ordering streams

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Jun 29 10:31:33 PDT 2018


https://bugs.llvm.org/show_bug.cgi?id=37991

            Bug ID: 37991
           Summary: Add a mode to llvm-pdbutil that allows re-ordering
                    streams
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: DebugInfo
          Assignee: zturner at google.com
          Reporter: zturner at google.com
                CC: llvm-bugs at lists.llvm.org

When investigating differences in MS PDBs vs LLD PDBs, we may emit the exact
same streams but we may not necessarily emit them in the same order as
Microsoft does.  This makes it harder to wade through important differences
between two files.  It would be nice if llvm-pdbutil had a subcommand that
could a target PDB "match" a source PDB.  

It would first check that both files have the same number of streams and that
there is a 1-to-1 mapping between the meanings of the streams.  If this failed,
it would error out.  Once that succeeded, it would re-order the streams of the
target PDB so that they are in the same order as the source PDB.  

This would involve fixing up cross-references to streams.  For example, if the
global symbol hash stream is 7 in the target PDB and 8 in the source PDB, it
would need to update the stream directory to indicate that it's now 8, but it
would also need to udpate the DBI stream field that says that the symbol record
stream is at 7.  Similarly, named streams would need to have the named stream
map updated, module info streams would need to update the DBI Module
descriptors, etc.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20180629/65b4a062/attachment-0001.html>


More information about the llvm-bugs mailing list