llvm/lib/DebugInfo/PDB
Bob Haarman 9398e86991 [pdb] handle missing pdb streams more gracefully
Summary: The code we use to read PDBs assumed that streams we ask it to read exist, and would read memory outside a vector and crash if this wasn't the case. This would, for example, cause llvm-pdbdump to crash on PDBs generated by lld. This patch handles such cases more gracefully: the PDB reading code in LLVM now reports errors when asked to get a stream that is not present, and llvm-pdbdump will report missing streams and continue processing streams that are present.

Reviewers: ruiu, zturner

Subscribers: thakis, amccarth

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288722 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-05 22:44:00 +00:00
..
DIA Remove LLVM_NOEXCEPT and replace it with noexcept 2016-10-19 23:52:38 +00:00
Raw [pdb] handle missing pdb streams more gracefully 2016-12-05 22:44:00 +00:00
CMakeLists.txt [pdb] added support for dumping globals stream 2016-10-21 19:43:19 +00:00
GenericError.cpp Remove LLVM_NOEXCEPT and replace it with noexcept 2016-10-19 23:52:38 +00:00
IPDBSourceFile.cpp [DebugInfo] Fix some Clang-tidy modernize-use-default and Include What You Use warnings; other minor fixes (NFC). 2016-11-23 23:16:32 +00:00
LLVMBuild.txt [msf] Resubmit "Rename Msf -> MSF". 2016-07-29 20:56:36 +00:00
PDB.cpp Add missing include. 2016-05-06 20:59:35 +00:00
PDBContext.cpp dwarfdump: -summarize-types: print a short summary (unqualified type name, hash, length) of type units rather than dumping contents 2016-10-18 21:09:48 +00:00
PDBExtras.cpp [codeview] Add support for new type records. 2016-05-24 22:58:46 +00:00
PDBInterfaceAnchors.cpp [DebugInfo] Fix some Clang-tidy modernize-use-default and Include What You Use warnings; other minor fixes (NFC). 2016-11-23 23:16:32 +00:00
PDBSymbol.cpp [DebugInfo] Fix some Clang-tidy modernize-use-default and Include What You Use warnings; other minor fixes (NFC). 2016-11-23 23:16:32 +00:00
PDBSymbolAnnotation.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolBlock.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolCompiland.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolCompilandDetails.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolCompilandEnv.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolCustom.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolData.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolExe.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolFunc.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolFuncDebugEnd.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolFuncDebugStart.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolLabel.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolPublicSymbol.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolThunk.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeArray.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeBaseClass.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeBuiltin.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeCustom.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeDimension.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeEnum.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeFriend.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeFunctionArg.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeFunctionSig.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeManaged.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypePointer.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeTypedef.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeUDT.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeVTable.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolTypeVTableShape.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolUnknown.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbolUsingNamespace.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymDumper.cpp [DebugInfo] Fix some Clang-tidy modernize-use-default and Include What You Use warnings; other minor fixes (NFC). 2016-11-23 23:16:32 +00:00