llvm-project/llvm/lib/DebugInfo/PDB
Reid Kleckner 0336cc05e7 [PDB] Fix function names for private symbols in PDBs
Summary:
llvm-symbolizer wants to get linkage names of functions for historical
reasons. Linkage names are only recorded in the PDB for public symbols,
and the linkage name is apparently stored separately in some "public
symbol" record. We had a workaround in PDBContext which would look for
such symbols when the user requested linkage names.

However, when given an address that was truly in a private function and
public funciton, we would accidentally find nearby public symbols and
return those function names. The fix is to look for both function
symbols and public symbols and only prefer the public symbol name if the
addresses of the symbols agree.

Fixes PR27492

Reviewers: zturner

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D19571

llvm-svn: 267732
2016-04-27 16:10:29 +00:00
..
DIA [llvm-pdbdump] Print a better error message when PDB loading fails. 2016-04-19 17:36:58 +00:00
Raw Remove more unused variables. 2016-04-26 20:32:35 +00:00
CMakeLists.txt Parse and dump PDB DBI Stream Header Information 2016-04-26 18:42:34 +00:00
IPDBSourceFile.cpp [llvm-pdbdump] Very minor code cleanup. 2015-02-23 05:59:14 +00:00
LLVMBuild.txt Add missing library dependency in libPDB. 2015-04-27 21:23:12 +00:00
PDB.cpp Resubmit "Refactor raw pdb dumper into library" 2016-04-25 17:38:08 +00:00
PDBContext.cpp [PDB] Fix function names for private symbols in PDBs 2016-04-27 16:10:29 +00:00
PDBExtras.cpp Parse and dump PDB DBI Stream Header Information 2016-04-26 18:42:34 +00:00
PDBInterfaceAnchors.cpp llvm-pdbdump: Re-order header files according to LLVM style guide. 2015-02-14 03:53:56 +00:00
PDBSymDumper.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbol.cpp [DebugInfoPDB] Raise getSymIndexId() up to PDBSymbol 2016-02-17 21:13:34 +00:00
PDBSymbolAnnotation.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolBlock.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolCompiland.cpp [DebugInfoPDB] Add source / line number accessors for PDB. 2016-02-18 18:47:29 +00:00
PDBSymbolCompilandDetails.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolCompilandEnv.cpp [DebugInfoPDB] A few cleanups on PDB Variant class. 2016-02-17 22:46:33 +00:00
PDBSymbolCustom.cpp MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
PDBSymbolData.cpp MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
PDBSymbolExe.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolFunc.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PDBSymbolFuncDebugEnd.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolFuncDebugStart.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolLabel.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolPublicSymbol.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolThunk.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeArray.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeBaseClass.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeBuiltin.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeCustom.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeDimension.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeEnum.cpp [llvm-pdbdump] Display full enum definitions. 2015-03-04 06:09:53 +00:00
PDBSymbolTypeFriend.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeFunctionArg.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeFunctionSig.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PDBSymbolTypeManaged.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypePointer.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeTypedef.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeUDT.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeVTable.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolTypeVTableShape.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolUnknown.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00
PDBSymbolUsingNamespace.cpp [llvm-pdbdump] Clean up method signatures. 2015-03-01 06:51:29 +00:00