Movatterモバイル変換


[0]ホーム

URL:


LLVM 20.0.0git
DbiModuleDescriptor.cpp
Go to the documentation of this file.
1//===- DbiModuleDescriptor.cpp - PDB module information -------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h"
10#include "llvm/DebugInfo/PDB/Native/RawTypes.h"
11#include "llvm/Support/BinaryStreamReader.h"
12#include "llvm/Support/Error.h"
13#include "llvm/Support/MathExtras.h"
14#include <cstdint>
15
16using namespacellvm;
17using namespacellvm::pdb;
18using namespacellvm::support;
19
20ErrorDbiModuleDescriptor::initialize(BinaryStreamRef Stream,
21DbiModuleDescriptor &Info) {
22BinaryStreamReader Reader(Stream);
23if (auto EC = Reader.readObject(Info.Layout))
24return EC;
25
26if (auto EC = Reader.readCString(Info.ModuleName))
27return EC;
28
29if (auto EC = Reader.readCString(Info.ObjFileName))
30return EC;
31returnError::success();
32}
33
34boolDbiModuleDescriptor::hasECInfo() const{
35return (Layout->Flags &ModInfoFlags::HasECFlagMask) != 0;
36}
37
38uint16_tDbiModuleDescriptor::getTypeServerIndex() const{
39return (Layout->Flags &ModInfoFlags::TypeServerIndexMask) >>
40ModInfoFlags::TypeServerIndexShift;
41}
42
43constSectionContrib &DbiModuleDescriptor::getSectionContrib() const{
44return Layout->SC;
45}
46
47uint16_tDbiModuleDescriptor::getModuleStreamIndex() const{
48return Layout->ModDiStream;
49}
50
51uint32_tDbiModuleDescriptor::getSymbolDebugInfoByteSize() const{
52return Layout->SymBytes;
53}
54
55uint32_tDbiModuleDescriptor::getC11LineInfoByteSize() const{
56return Layout->C11Bytes;
57}
58
59uint32_tDbiModuleDescriptor::getC13LineInfoByteSize() const{
60return Layout->C13Bytes;
61}
62
63uint32_tDbiModuleDescriptor::getNumberOfFiles() const{
64return Layout->NumFiles;
65}
66
67uint32_tDbiModuleDescriptor::getSourceFileNameIndex() const{
68return Layout->SrcFileNameNI;
69}
70
71uint32_tDbiModuleDescriptor::getPdbFilePathNameIndex() const{
72return Layout->PdbFilePathNI;
73}
74
75StringRefDbiModuleDescriptor::getModuleName() const{returnModuleName; }
76
77StringRefDbiModuleDescriptor::getObjFileName() const{return ObjFileName; }
78
79uint32_tDbiModuleDescriptor::getRecordLength() const{
80uint32_t M =ModuleName.str().size() + 1;
81uint32_t O = ObjFileName.str().size() + 1;
82uint32_tSize =sizeof(ModuleInfoHeader) + M + O;
83Size =alignTo(Size, 4);
84returnSize;
85}
BinaryStreamReader.h
Info
Analysis containing CSE Info
Definition:CSEInfo.cpp:27
DbiModuleDescriptor.h
Size
uint64_t Size
Definition:ELFObjHandler.cpp:81
MathExtras.h
RawTypes.h
llvm::BinaryStreamReader
Provides read only access to a subclass of BinaryStream.
Definition:BinaryStreamReader.h:29
llvm::BinaryStreamReader::readObject
Error readObject(const T *&Dest)
Get a pointer to an object of type T from the underlying stream, as if by memcpy, and store the resul...
Definition:BinaryStreamReader.h:160
llvm::BinaryStreamReader::readCString
Error readCString(StringRef &Dest)
Read a null terminated string from Dest.
Definition:BinaryStreamReader.cpp:73
llvm::BinaryStreamRef
BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.
Definition:BinaryStreamRef.h:154
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition:Error.h:160
llvm::Error::success
static ErrorSuccess success()
Create a success value.
Definition:Error.h:337
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition:StringRef.h:51
llvm::StringRef::str
std::string str() const
str - Get the contents as an std::string.
Definition:StringRef.h:229
llvm::pdb::DbiModuleDescriptor
Definition:DbiModuleDescriptor.h:23
llvm::pdb::DbiModuleDescriptor::getSymbolDebugInfoByteSize
uint32_t getSymbolDebugInfoByteSize() const
Definition:DbiModuleDescriptor.cpp:51
llvm::pdb::DbiModuleDescriptor::getSectionContrib
const SectionContrib & getSectionContrib() const
Definition:DbiModuleDescriptor.cpp:43
llvm::pdb::DbiModuleDescriptor::getRecordLength
uint32_t getRecordLength() const
Definition:DbiModuleDescriptor.cpp:79
llvm::pdb::DbiModuleDescriptor::getPdbFilePathNameIndex
uint32_t getPdbFilePathNameIndex() const
Definition:DbiModuleDescriptor.cpp:71
llvm::pdb::DbiModuleDescriptor::getC13LineInfoByteSize
uint32_t getC13LineInfoByteSize() const
Definition:DbiModuleDescriptor.cpp:59
llvm::pdb::DbiModuleDescriptor::getNumberOfFiles
uint32_t getNumberOfFiles() const
Definition:DbiModuleDescriptor.cpp:63
llvm::pdb::DbiModuleDescriptor::getSourceFileNameIndex
uint32_t getSourceFileNameIndex() const
Definition:DbiModuleDescriptor.cpp:67
llvm::pdb::DbiModuleDescriptor::getTypeServerIndex
uint16_t getTypeServerIndex() const
Definition:DbiModuleDescriptor.cpp:38
llvm::pdb::DbiModuleDescriptor::hasECInfo
bool hasECInfo() const
Definition:DbiModuleDescriptor.cpp:34
llvm::pdb::DbiModuleDescriptor::initialize
static Error initialize(BinaryStreamRef Stream, DbiModuleDescriptor &Info)
Definition:DbiModuleDescriptor.cpp:20
llvm::pdb::DbiModuleDescriptor::getObjFileName
StringRef getObjFileName() const
Definition:DbiModuleDescriptor.cpp:77
llvm::pdb::DbiModuleDescriptor::getModuleStreamIndex
uint16_t getModuleStreamIndex() const
Definition:DbiModuleDescriptor.cpp:47
llvm::pdb::DbiModuleDescriptor::getModuleName
StringRef getModuleName() const
Definition:DbiModuleDescriptor.cpp:75
llvm::pdb::DbiModuleDescriptor::getC11LineInfoByteSize
uint32_t getC11LineInfoByteSize() const
Definition:DbiModuleDescriptor.cpp:55
uint16_t
uint32_t
Error.h
llvm::pdb
Definition:LVCodeViewReader.h:44
llvm::support
Definition:Endian.h:26
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:AddressRanges.h:18
llvm::alignTo
uint64_t alignTo(uint64_t Size, Align A)
Returns a multiple of A needed to store Size bytes.
Definition:Alignment.h:155
ModuleName
Definition:ItaniumDemangle.h:1097
llvm::pdb::ModInfoFlags::TypeServerIndexShift
static const uint16_t TypeServerIndexShift
Definition:RawTypes.h:207
llvm::pdb::ModInfoFlags::HasECFlagMask
static const uint16_t HasECFlagMask
uint16_t fWritten : 1; // True if DbiModuleDescriptor is dirty uint16_t fECEnabled : 1; // Is EC symb...
Definition:RawTypes.h:204
llvm::pdb::ModInfoFlags::TypeServerIndexMask
static const uint16_t TypeServerIndexMask
Definition:RawTypes.h:206
llvm::pdb::ModuleInfoHeader
The header preceding each entry in the Module Info substream of the DBI stream.
Definition:RawTypes.h:212
llvm::pdb::ModuleInfoHeader::PdbFilePathNI
support::ulittle32_t PdbFilePathNI
Name Index for path to compiler PDB.
Definition:RawTypes.h:255
llvm::pdb::ModuleInfoHeader::ModDiStream
support::ulittle16_t ModDiStream
Stream Number of module debug info.
Definition:RawTypes.h:226
llvm::pdb::ModuleInfoHeader::NumFiles
support::ulittle16_t NumFiles
Number of files contributing to this module.
Definition:RawTypes.h:238
llvm::pdb::ModuleInfoHeader::Flags
support::ulittle16_t Flags
See ModInfoFlags definition.
Definition:RawTypes.h:223
llvm::pdb::ModuleInfoHeader::SrcFileNameNI
support::ulittle32_t SrcFileNameNI
Name Index for src file name.
Definition:RawTypes.h:252
llvm::pdb::ModuleInfoHeader::SC
SectionContrib SC
First section contribution of this module.
Definition:RawTypes.h:220
llvm::pdb::ModuleInfoHeader::C13Bytes
support::ulittle32_t C13Bytes
Size of C13 line number info in above stream.
Definition:RawTypes.h:235
llvm::pdb::ModuleInfoHeader::SymBytes
support::ulittle32_t SymBytes
Size of local symbol debug info in above stream.
Definition:RawTypes.h:229
llvm::pdb::ModuleInfoHeader::C11Bytes
support::ulittle32_t C11Bytes
Size of C11 line number info in above stream.
Definition:RawTypes.h:232
llvm::pdb::SectionContrib
Definition:RawTypes.h:46

Generated on Fri Jul 18 2025 11:16:51 for LLVM by doxygen 1.9.6
[8]ページ先頭

©2009-2025 Movatter.jp