#include "llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/BinaryFormat/COFF.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/CodeView/DebugSubsectionRecord.h"
#include "llvm/DebugInfo/MSF/MSFBuilder.h"
#include "llvm/DebugInfo/MSF/MappedBlockStream.h"
#include "llvm/DebugInfo/PDB/Native/RawConstants.h"
#include "llvm/DebugInfo/PDB/Native/RawError.h"
#include "llvm/Support/BinaryStreamWriter.h"
usingnamespacellvm;
usingnamespacellvm::codeview;
usingnamespacellvm::msf;
usingnamespacellvm::pdb;
namespace llvm {
namespace codeview {
class DebugSubsection;
}
}
static uint32_t calculateDiSymbolStreamSize(uint32_t SymbolByteSize,
uint32_t C13Size) { … }
DbiModuleDescriptorBuilder::DbiModuleDescriptorBuilder(StringRef ModuleName,
uint32_t ModIndex,
msf::MSFBuilder &Msf)
: … { … }
DbiModuleDescriptorBuilder::~DbiModuleDescriptorBuilder() = default;
uint16_t DbiModuleDescriptorBuilder::getStreamIndex() const { … }
void DbiModuleDescriptorBuilder::setObjFileName(StringRef Name) { … }
void DbiModuleDescriptorBuilder::setPdbFilePathNI(uint32_t NI) { … }
void DbiModuleDescriptorBuilder::setFirstSectionContrib(
const SectionContrib &SC) { … }
void DbiModuleDescriptorBuilder::addSymbol(CVSymbol Symbol) { … }
void DbiModuleDescriptorBuilder::addSymbolsInBulk(
ArrayRef<uint8_t> BulkSymbols) { … }
void DbiModuleDescriptorBuilder::addUnmergedSymbols(void *SymSrc,
uint32_t SymLength) { … }
void DbiModuleDescriptorBuilder::addSourceFile(StringRef Path) { … }
uint32_t DbiModuleDescriptorBuilder::calculateC13DebugInfoSize() const { … }
uint32_t DbiModuleDescriptorBuilder::calculateSerializedLength() const { … }
void DbiModuleDescriptorBuilder::finalize() { … }
Error DbiModuleDescriptorBuilder::finalizeMsfLayout() { … }
Error DbiModuleDescriptorBuilder::commit(BinaryStreamWriter &ModiWriter) { … }
Error DbiModuleDescriptorBuilder::commitSymbolStream(
const msf::MSFLayout &MsfLayout, WritableBinaryStreamRef MsfBuffer) { … }
void DbiModuleDescriptorBuilder::addDebugSubsection(
std::shared_ptr<DebugSubsection> Subsection) { … }
void DbiModuleDescriptorBuilder::addDebugSubsection(
const DebugSubsectionRecord &SubsectionContents) { … }