Commit Graph

6 Commits

Author SHA1 Message Date
Alexandre Ganea
2031cf6be1 [Debuginfo][COFF] Minimal serialization support for precompiled types records
This change adds support for the LF_PRECOMP and LF_ENDPRECOMP records required
to read/write Microsoft precompiled types .objs.
See https://en.wikipedia.org/wiki/Precompiled_header#Microsoft_Visual_C_and_C++

This also adds handling for the .debug$P section, which is actually a .debug$T
section in disguise, found only in precompiled .objs.

Differential Revision: https://reviews.llvm.org/D45283

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329613 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-09 20:17:56 +00:00
Zachary Turner
a2c231364c Fix a compilation failure with non MSVC compilers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329209 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-04 17:41:05 +00:00
Zachary Turner
06e4df3aff [llvm-pdbutil] Add the ability to explain binary files.
Using this, you can use llvm-pdbutil to export the contents of a
stream to a binary file, then run explain on the binary file so
that it treats the offset as an offset into the stream instead
of an offset into a file.  This makes it easy to compare the
contents of the same stream from two different files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329207 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-04 17:29:09 +00:00
Zachary Turner
3c6344a9e2 Fix a bug regarding a mis-identified file type in pdbutil.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326929 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-07 19:12:36 +00:00
Zachary Turner
5263738d53 [llvm-pdbutil] Remove unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312395 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-02 00:09:43 +00:00
Zachary Turner
6ef51e8f14 [llvm-pdbutil] Support dumping CodeView from object files.
We have llvm-readobj for dumping CodeView from object files, and
llvm-pdbutil has always been more focused on PDB.  However,
llvm-pdbutil has a lot of useful options for summarizing debug
information in aggregate and presenting high level statistical
views.  Furthermore, it's arguably better as a testing tool since
we don't have to write tests to conform to a state-machine like
structure where you match multiple lines in succession, each
depending on a previous match.  llvm-pdbutil dumps much more
concisely, so it's possible to use single-line matches in many
cases where as with readobj tests you have to use multi-line
matches with an implicit state machine.

Because of this, I'm adding object file support to llvm-pdbutil.
In fact, this mirrors the cvdump tool from Microsoft, which also
supports both object files and pdb files.  In the future we could
perhaps rename this tool llvm-cvutil.

In the meantime, this allows us to deep dive into object files
the same way we already can with PDB files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312358 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-01 20:06:56 +00:00