1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/tools/llvm-pdbutil
Zachary Turner ae9d9f3bb3 [PDB] Fix linking of function symbols and local variables.
The compiler outputs PROC32_ID symbols into the object files
for functions, and these symbols have an embedded type index
which, when copied to the PDB, refer to the IPI stream.  However,
the symbols themselves are also converted into regular symbols
(e.g. S_GPROC32_ID -> S_GPROC32), and type indices in the regular
symbol records refer to the TPI stream.  So this patch applies
two fixes to function records.
  1. It converts ID symbols to the proper non-ID record type.
  2. After remapping the type index from the object file's index
     space to the PDB file/IPI stream's index space, it then
     remaps that index to the TPI stream's index space by.

Besides functions, during the remapping process we were also
discarding symbol record types which we did not recognize.
In particular, we were discarding S_BPREL32 records, which is
what MSVC uses to describe local variables on the stack.  So
this patch fixes that as well by copying them to the PDB.

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

llvm-svn: 310394
2017-08-08 18:34:44 +00:00
..
fuzzer
Analyze.cpp Remove some dead code / includes. 2017-06-16 23:42:15 +00:00
Analyze.h
BytesOutputStyle.cpp [pdbutil] Add a command to dump the FPM. 2017-08-02 22:25:52 +00:00
BytesOutputStyle.h [pdbutil] Add a command to dump the FPM. 2017-08-02 22:25:52 +00:00
CMakeLists.txt [llvm-pdbutil] Improve diff mode. 2017-07-07 18:45:37 +00:00
Diff.cpp [llvm-pdbutil] Allow diff to force module equivalencies. 2017-08-03 20:30:09 +00:00
Diff.h
DiffPrinter.cpp Resubmit "Add pdb-diff test." 2017-07-10 19:16:49 +00:00
DiffPrinter.h Resubmit "Add pdb-diff test." 2017-07-10 19:16:49 +00:00
DumpOutputStyle.cpp [PDB] Fix linking of function symbols and local variables. 2017-08-08 18:34:44 +00:00
DumpOutputStyle.h [llvm-pdbutil] Dump image section headers. 2017-08-04 20:02:38 +00:00
FormatUtil.cpp [llvm-pdbutil] Improve diff mode. 2017-07-07 18:45:37 +00:00
FormatUtil.h [llvm-pdbutil] Improve diff mode. 2017-07-07 18:45:37 +00:00
LinePrinter.cpp [pdbutil] Add a command to dump the FPM. 2017-08-02 22:25:52 +00:00
LinePrinter.h [pdbutil] Add a command to dump the FPM. 2017-08-02 22:25:52 +00:00
llvm-pdbutil.cpp [llvm-pdbutil] Dump image section headers. 2017-08-04 20:02:38 +00:00
llvm-pdbutil.h [llvm-pdbutil] Dump image section headers. 2017-08-04 20:02:38 +00:00
LLVMBuild.txt
MinimalSymbolDumper.cpp [PDB] Fix linking of function symbols and local variables. 2017-08-08 18:34:44 +00:00
MinimalSymbolDumper.h [PDB] Fix linking of function symbols and local variables. 2017-08-08 18:34:44 +00:00
MinimalTypeDumper.cpp [PDB] Finish and simplify TPI hashing 2017-07-18 00:33:45 +00:00
MinimalTypeDumper.h [PDB] Finish and simplify TPI hashing 2017-07-18 00:33:45 +00:00
OutputStyle.h
PdbYaml.cpp [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId 2017-07-17 23:59:44 +00:00
PdbYaml.h [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId 2017-07-17 23:59:44 +00:00
PrettyBuiltinDumper.cpp
PrettyBuiltinDumper.h
PrettyClassDefinitionDumper.cpp
PrettyClassDefinitionDumper.h
PrettyClassLayoutGraphicalDumper.cpp Fix a null pointer dereference in llvm-pdbutil pretty. 2017-06-12 20:46:35 +00:00
PrettyClassLayoutGraphicalDumper.h
PrettyCompilandDumper.cpp
PrettyCompilandDumper.h
PrettyEnumDumper.cpp Enable llvm-pdbutil to list enumerations using native PDB reader 2017-08-04 22:37:58 +00:00
PrettyEnumDumper.h
PrettyExternalSymbolDumper.cpp
PrettyExternalSymbolDumper.h
PrettyFunctionDumper.cpp
PrettyFunctionDumper.h
PrettyTypedefDumper.cpp
PrettyTypedefDumper.h
PrettyTypeDumper.cpp
PrettyTypeDumper.h
PrettyVariableDumper.cpp
PrettyVariableDumper.h
StreamUtil.cpp Resubmit "Add pdb-diff test." 2017-07-10 19:16:49 +00:00
StreamUtil.h Resubmit "Add pdb-diff test." 2017-07-10 19:16:49 +00:00
YAMLOutputStyle.cpp Resubmit "[llvm-pdbutil] rewrite the "raw" output style." 2017-06-15 22:24:24 +00:00
YAMLOutputStyle.h