llvm-project/llvm/lib/DebugInfo/PDB
Zachary Turner d3c7b8e303 [msf] Teach LLVM to parse a split Fpm.
The FPM is split at regular intervals across the MSF file, as the MS code
suggests. It turns out that the value of the interval is precisely the
block size. If the block size is 4096, then there are two Fpm pages every
4096 blocks.

So here we teach the PDBFile class to parse a split FPM, and also add more
options when dumping the FPM to display some additional information such
as orphaned pages (pages which the FPM says are allocated, but which
nothing appears to use), use after free pages (pages which the FPM says
are not allocated, but which are referenced by a stream), and multiple use
pages (pages which the FPM says are allocated but are used more than
once).

Reviewed By: ruiu
Differential Revision: https://reviews.llvm.org/D23022

llvm-svn: 277388
2016-08-01 21:19:45 +00:00
..
DIA [codeview] Add support for new type records. 2016-05-24 22:58:46 +00:00
Raw [msf] Teach LLVM to parse a split Fpm. 2016-08-01 21:19:45 +00:00
CMakeLists.txt [msf] Create LLVMDebugInfoMsf 2016-07-22 19:56:05 +00:00
GenericError.cpp Add FIXMEs to all derived classes of std::error_category. 2016-05-24 20:13:46 +00:00
IPDBSourceFile.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +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 Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBExtras.cpp [codeview] Add support for new type records. 2016-05-24 22:58:46 +00:00
PDBInterfaceAnchors.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymDumper.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +00:00
PDBSymbol.cpp Move pdb code into pdb namespace. 2016-05-04 20:32:13 +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