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 66 of file NativeSession.cpp.
References Allocator.
|
overridedefault |
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 227 of file NativeSession.cpp.
References llvm::pdb::Offset, and llvm::size().
Referenced by addressForVA(), and findSymbolByRVA().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 221 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 151 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 73 of file NativeSession.cpp.
References Allocator, llvm::little, llvm::pdb::Path, and llvm::Error::success().
|
static |
Definition at line 120 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 313 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 275 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 281 of file NativeSession.cpp.
References llvm::pdb::Address, llvm::pdb::SymbolCache::findLineNumbersByVA(), and llvm::Length.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 287 of file NativeSession.cpp.
References llvm::pdb::SymbolCache::findLineNumbersByVA(), getLoadAddress(), and llvm::Length.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 292 of file NativeSession.cpp.
References llvm::pdb::SymbolCache::findLineNumbersByVA(), getVAFromSectOffset(), llvm::Length, and llvm::pdb::Offset.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 319 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 306 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 299 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 250 of file NativeSession.cpp.
References llvm::pdb::Address, addressForVA(), findSymbolBySectOffset(), and llvm::pdb::Offset.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 257 of file NativeSession.cpp.
References addressForRVA(), findSymbolBySectOffset(), and llvm::pdb::Offset.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 266 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 324 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 338 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 342 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 367 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 212 of file NativeSession.cpp.
References getNativeGlobalScope().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 347 of file NativeSession.cpp.
References llvm::consumeError().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 205 of file NativeSession.cpp.
Referenced by addressForVA(), and findLineNumbersByRVA().
Expected< ModuleDebugStreamRef > NativeSession::getModuleDebugStream | ( | uint32_t | Index | ) | const |
Definition at line 454 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 376 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 382 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 362 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 334 of file NativeSession.cpp.
References llvm::pdb::SymbolCache::getSourceFileById().
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 328 of file NativeSession.cpp.
|
overridevirtual |
Implements llvm::pdb::IPDBSession.
Definition at line 217 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 398 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 412 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 403 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 174 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 207 of file NativeSession.cpp.
References llvm::pdb::Address.