LLVM 20.0.0git
|
#include "llvm/DebugInfo/PDB/Native/NativeSession.h"
Static Public Member Functions | |
static Error | createFromPdb (std::unique_ptr< MemoryBuffer > MB, std::unique_ptr< IPDBSession > &Session) |
static Error | createFromPdbPath (StringRef PdbPath, std::unique_ptr< IPDBSession > &Session) |
static Error | createFromExe (StringRef Path, std::unique_ptr< IPDBSession > &Session) |
static Expected< std::string > | searchForPdb (const PdbSearchOptions &Opts) |
Definition at line 32 of file NativeSession.h.
NativeSession::NativeSession | ( | std::unique_ptr< PDBFile > | PdbFile, |
std::unique_ptr< BumpPtrAllocator > | Allocator | ||
) |
Definition at line 64 of file NativeSession.cpp.
References Allocator.
|
overridedefault |
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 225 of file NativeSession.cpp.
References llvm::pdb::Offset, and llvm::size().
Referenced by addressForVA(), and findSymbolByRVA().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 219 of file NativeSession.cpp.
References addressForRVA(), getLoadAddress(), and llvm::pdb::Offset.
Referenced by llvm::pdb::NativeInlineSiteSymbol::findInlineeLinesByVA(), llvm::pdb::SymbolCache::findLineNumbersByVA(), and findSymbolByAddress().
|
static |
Definition at line 149 of file NativeSession.cpp.
References Allocator, llvm::Expected< T >::get(), getPdbPathFromExe(), llvm::identify_magic(), loadPdbFile(), llvm::msf::Magic, llvm::file_magic::pdb, llvm::Error::success(), and llvm::Expected< T >::takeError().
|
static |
Definition at line 71 of file NativeSession.cpp.
References Allocator, llvm::little, llvm::pdb::Path, and llvm::Error::success().
|
static |
Definition at line 118 of file NativeSession.cpp.
References Allocator, loadPdbFile(), and llvm::Error::success().
Referenced by llvm::pdb::loadDataForEXE(), and llvm::pdb::loadDataForPDB().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 311 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 273 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 279 of file NativeSession.cpp.
References llvm::pdb::Address, llvm::pdb::SymbolCache::findLineNumbersByVA(), and llvm::Length.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 285 of file NativeSession.cpp.
References llvm::pdb::SymbolCache::findLineNumbersByVA(), getLoadAddress(), and llvm::Length.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 290 of file NativeSession.cpp.
References llvm::pdb::SymbolCache::findLineNumbersByVA(), getVAFromSectOffset(), llvm::Length, and llvm::pdb::Offset.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 317 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 304 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 297 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 248 of file NativeSession.cpp.
References llvm::pdb::Address, addressForVA(), findSymbolBySectOffset(), and llvm::pdb::Offset.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 255 of file NativeSession.cpp.
References addressForRVA(), findSymbolBySectOffset(), and llvm::pdb::Offset.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 264 of file NativeSession.cpp.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::empty(), llvm::pdb::SymbolCache::findSymbolBySectOffset(), and llvm::pdb::Offset.
Referenced by findSymbolByAddress(), and findSymbolByRVA().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 322 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 336 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 340 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 365 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 210 of file NativeSession.cpp.
References getNativeGlobalScope().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 345 of file NativeSession.cpp.
References llvm::consumeError().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 203 of file NativeSession.cpp.
Referenced by addressForVA(), and findLineNumbersByRVA().
Expected< ModuleDebugStreamRef > NativeSession::getModuleDebugStream | ( | uint32_t | Index | ) | const |
Definition at line 452 of file NativeSession.cpp.
References assert(), getDbiStreamPtr(), llvm::pdb::DbiModuleDescriptor::getModuleStreamIndex(), llvm::pdb::kInvalidStreamIndex, and llvm::pdb::ModuleDebugStreamRef::reload().
Referenced by llvm::pdb::NativeInlineSiteSymbol::findInlineeLinesByVA(), llvm::pdb::NativeFunctionSymbol::findInlineFramesByVA(), and llvm::pdb::SymbolCache::findLineNumbersByVA().
NativeExeSymbol & NativeSession::getNativeGlobalScope | ( | ) | const |
Definition at line 374 of file NativeSession.cpp.
References llvm::pdb::SymbolCache::getNativeSymbolById().
Referenced by getGlobalScope().
|
inline |
Definition at line 109 of file NativeSession.h.
Referenced by llvm::pdb::SymbolCache::createTypeEnumerator(), llvm::pdb::SymbolCache::findSymbolByTypeIndex(), llvm::pdb::NativeExeSymbol::getAge(), getDbiStreamPtr(), llvm::pdb::NativeSourceFile::getFileName(), llvm::pdb::NativeExeSymbol::getGuid(), llvm::pdb::NativeInlineSiteSymbol::getName(), llvm::pdb::SymbolCache::getOrCreateGlobalSymbolByOffset(), llvm::pdb::NativeExeSymbol::getSymbolsFileName(), llvm::pdb::NativeExeSymbol::hasCTypes(), llvm::pdb::NativeExeSymbol::hasPrivateSymbols(), and llvm::pdb::NativeEnumGlobals::NativeEnumGlobals().
Definition at line 110 of file NativeSession.h.
Definition at line 380 of file NativeSession.cpp.
References getDbiStreamPtr(), and llvm::pdb::Offset.
Referenced by llvm::pdb::NativeFunctionSymbol::getRelativeVirtualAddress(), llvm::pdb::NativeLineNumber::getRelativeVirtualAddress(), llvm::pdb::NativePublicSymbol::getRelativeVirtualAddress(), and getVAFromSectOffset().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 360 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 332 of file NativeSession.cpp.
References llvm::pdb::SymbolCache::getSourceFileById().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 326 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 215 of file NativeSession.cpp.
References llvm::pdb::SymbolCache::getSymbolById().
|
inline |
Definition at line 113 of file NativeSession.h.
Referenced by llvm::pdb::NativeExeSymbol::findChildren(), llvm::pdb::NativeInlineSiteSymbol::findInlineeLinesByVA(), llvm::pdb::NativeFunctionSymbol::findInlineFramesByVA(), llvm::pdb::NativeTypeArray::getArrayIndexTypeId(), llvm::pdb::NativeTypeEnum::getBuiltinType(), llvm::pdb::NativeEnumGlobals::getChildAtIndex(), llvm::pdb::NativeEnumModules::getChildAtIndex(), llvm::pdb::NativeEnumSymbols::getChildAtIndex(), llvm::pdb::NativeEnumTypes::getChildAtIndex(), llvm::pdb::NativeEnumModules::getChildCount(), llvm::pdb::NativeTypePointer::getClassParentId(), llvm::pdb::NativeTypeArray::getCount(), llvm::pdb::NativeTypeEnum::getLength(), llvm::pdb::NativeTypeArray::getTypeId(), llvm::pdb::NativeTypeEnum::getTypeId(), llvm::pdb::NativeTypeFunctionSig::getTypeId(), llvm::pdb::NativeTypePointer::getTypeId(), llvm::pdb::NativeTypeTypedef::getTypeId(), llvm::pdb::NativeTypeEnum::getUnderlyingBuiltinType(), llvm::pdb::NativeTypeUDT::getVirtualTableShapeId(), and llvm::pdb::NativeTypeFunctionSig::initialize().
|
inline |
Definition at line 114 of file NativeSession.h.
Definition at line 396 of file NativeSession.cpp.
References getRVAFromSectOffset(), and llvm::pdb::Offset.
Referenced by findLineNumbersBySectOffset(), llvm::pdb::NativeFunctionSymbol::getVirtualAddress(), llvm::pdb::NativeLineNumber::getVirtualAddress(), llvm::pdb::NativePublicSymbol::getVirtualAddress(), and moduleIndexForSectOffset().
bool NativeSession::moduleIndexForSectOffset | ( | uint32_t | Sect, |
uint32_t | Offset, | ||
uint16_t & | ModuleIndex | ||
) | const |
Definition at line 410 of file NativeSession.cpp.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::end(), llvm::IntervalMap< KeyT, ValT, N, Traits >::find(), getVAFromSectOffset(), and llvm::pdb::Offset.
Referenced by llvm::pdb::SymbolCache::findSymbolBySectOffset().
Definition at line 401 of file NativeSession.cpp.
References llvm::IntervalMap< KeyT, ValT, N, Traits >::end(), and llvm::IntervalMap< KeyT, ValT, N, Traits >::find().
Referenced by llvm::pdb::NativeInlineSiteSymbol::findInlineeLinesByVA(), llvm::pdb::NativeFunctionSymbol::findInlineFramesByVA(), and llvm::pdb::SymbolCache::findLineNumbersByVA().
Definition at line 172 of file NativeSession.cpp.
References Allocator, llvm::sys::path::append(), llvm::consumeError(), llvm::sys::path::filename(), llvm::Expected< T >::get(), getPdbPathFromExe(), loadPdbFile(), llvm::sys::path::posix, llvm::sys::path::remove_filename(), llvm::StringRef::starts_with(), llvm::Expected< T >::takeError(), and llvm::sys::path::windows.
Referenced by llvm::pdb::loadDataForEXE(), and searchForExe().
Implements llvm::pdb::IPDBSession.
Definition at line 205 of file NativeSession.cpp.
References llvm::pdb::Address.