#include "llvm/DebugInfo/PDB/Native/PDBFileBuilder.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/CodeView/GUID.h"
#include "llvm/DebugInfo/MSF/MSFBuilder.h"
#include "llvm/DebugInfo/MSF/MSFCommon.h"
#include "llvm/DebugInfo/MSF/MappedBlockStream.h"
#include "llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h"
#include "llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h"
#include "llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h"
#include "llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h"
#include "llvm/DebugInfo/PDB/Native/RawConstants.h"
#include "llvm/DebugInfo/PDB/Native/RawError.h"
#include "llvm/DebugInfo/PDB/Native/RawTypes.h"
#include "llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h"
#include "llvm/Support/BinaryStreamWriter.h"
#include "llvm/Support/CRC.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/TimeProfiler.h"
#include "llvm/Support/xxhash.h"
#include <ctime>
usingnamespacellvm;
usingnamespacellvm::codeview;
usingnamespacellvm::msf;
usingnamespacellvm::pdb;
usingnamespacellvm::support;
namespace llvm {
class WritableBinaryStream;
}
PDBFileBuilder::PDBFileBuilder(BumpPtrAllocator &Allocator)
: … { … }
PDBFileBuilder::~PDBFileBuilder() = default;
Error PDBFileBuilder::initialize(uint32_t BlockSize) { … }
MSFBuilder &PDBFileBuilder::getMsfBuilder() { … }
InfoStreamBuilder &PDBFileBuilder::getInfoBuilder() { … }
DbiStreamBuilder &PDBFileBuilder::getDbiBuilder() { … }
TpiStreamBuilder &PDBFileBuilder::getTpiBuilder() { … }
TpiStreamBuilder &PDBFileBuilder::getIpiBuilder() { … }
PDBStringTableBuilder &PDBFileBuilder::getStringTableBuilder() { … }
GSIStreamBuilder &PDBFileBuilder::getGsiBuilder() { … }
Expected<uint32_t> PDBFileBuilder::allocateNamedStream(StringRef Name,
uint32_t Size) { … }
Error PDBFileBuilder::addNamedStream(StringRef Name, StringRef Data) { … }
void PDBFileBuilder::addInjectedSource(StringRef Name,
std::unique_ptr<MemoryBuffer> Buffer) { … }
Error PDBFileBuilder::finalizeMsfLayout() { … }
Expected<uint32_t> PDBFileBuilder::getNamedStreamIndex(StringRef Name) const { … }
void PDBFileBuilder::commitSrcHeaderBlock(WritableBinaryStream &MsfBuffer,
const msf::MSFLayout &Layout) { … }
void PDBFileBuilder::commitInjectedSources(WritableBinaryStream &MsfBuffer,
const msf::MSFLayout &Layout) { … }
Error PDBFileBuilder::commit(StringRef Filename, codeview::GUID *Guid) { … }