brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.9 KiB · 89f9f98 Raw
734 lines · cpp
1//===- NativeRawSymbol.cpp - Native implementation of IPDBRawSymbol -------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"10#include "llvm/DebugInfo/PDB/IPDBLineNumber.h"11#include "llvm/DebugInfo/PDB/Native/NativeSession.h"12#include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"13 14using namespace llvm;15using namespace llvm::pdb;16 17NativeRawSymbol::NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag,18                                 SymIndexId SymbolId)19    : Session(PDBSession), Tag(Tag), SymbolId(SymbolId) {}20 21void NativeRawSymbol::dump(raw_ostream &OS, int Indent,22                           PdbSymbolIdField ShowIdFields,23                           PdbSymbolIdField RecurseIdFields) const {24  dumpSymbolIdField(OS, "symIndexId", SymbolId, Indent, Session,25                    PdbSymbolIdField::SymIndexId, ShowIdFields,26                    RecurseIdFields);27  dumpSymbolField(OS, "symTag", Tag, Indent);28}29 30std::unique_ptr<IPDBEnumSymbols>31NativeRawSymbol::findChildren(PDB_SymType Type) const {32  return std::make_unique<NullEnumerator<PDBSymbol>>();33}34 35std::unique_ptr<IPDBEnumSymbols>36NativeRawSymbol::findChildren(PDB_SymType Type, StringRef Name,37    PDB_NameSearchFlags Flags) const {38  return std::make_unique<NullEnumerator<PDBSymbol>>();39}40 41std::unique_ptr<IPDBEnumSymbols>42NativeRawSymbol::findChildrenByAddr(PDB_SymType Type, StringRef Name,43    PDB_NameSearchFlags Flags, uint32_t Section, uint32_t Offset) const {44  return std::make_unique<NullEnumerator<PDBSymbol>>();45}46 47std::unique_ptr<IPDBEnumSymbols>48NativeRawSymbol::findChildrenByVA(PDB_SymType Type, StringRef Name,49   PDB_NameSearchFlags Flags, uint64_t VA) const {50  return std::make_unique<NullEnumerator<PDBSymbol>>();51}52 53std::unique_ptr<IPDBEnumSymbols>54NativeRawSymbol::findChildrenByRVA(PDB_SymType Type, StringRef Name,55    PDB_NameSearchFlags Flags, uint32_t RVA) const {56  return std::make_unique<NullEnumerator<PDBSymbol>>();57}58 59std::unique_ptr<IPDBEnumSymbols>60NativeRawSymbol::findInlineFramesByAddr(uint32_t Section,61                                        uint32_t Offset) const {62  return std::make_unique<NullEnumerator<PDBSymbol>>();63}64 65std::unique_ptr<IPDBEnumSymbols>66NativeRawSymbol::findInlineFramesByRVA(uint32_t RVA) const {67  return std::make_unique<NullEnumerator<PDBSymbol>>();68}69 70std::unique_ptr<IPDBEnumSymbols>71NativeRawSymbol::findInlineFramesByVA(uint64_t VA) const {72  return std::make_unique<NullEnumerator<PDBSymbol>>();73}74 75std::unique_ptr<IPDBEnumLineNumbers>76NativeRawSymbol::findInlineeLines() const {77  return std::make_unique<NullEnumerator<IPDBLineNumber>>();78}79 80std::unique_ptr<IPDBEnumLineNumbers>81NativeRawSymbol::findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,82                                        uint32_t Length) const {83  return std::make_unique<NullEnumerator<IPDBLineNumber>>();84}85 86std::unique_ptr<IPDBEnumLineNumbers>87NativeRawSymbol::findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const {88  return std::make_unique<NullEnumerator<IPDBLineNumber>>();89}90 91std::unique_ptr<IPDBEnumLineNumbers>92NativeRawSymbol::findInlineeLinesByVA(uint64_t VA, uint32_t Length) const {93  return std::make_unique<NullEnumerator<IPDBLineNumber>>();94}95 96void NativeRawSymbol::getDataBytes(SmallVector<uint8_t, 32> &bytes) const {97  bytes.clear();98}99 100PDB_MemberAccess NativeRawSymbol::getAccess() const {101  return PDB_MemberAccess::Private;102}103 104uint32_t NativeRawSymbol::getAddressOffset() const {105  return 0;106}107 108uint32_t NativeRawSymbol::getAddressSection() const {109  return 0;110}111 112uint32_t NativeRawSymbol::getAge() const {113  return 0;114}115 116SymIndexId NativeRawSymbol::getArrayIndexTypeId() const { return 0; }117 118void NativeRawSymbol::getBackEndVersion(VersionInfo &Version) const {119  Version.Major = 0;120  Version.Minor = 0;121  Version.Build = 0;122  Version.QFE = 0;123}124 125uint32_t NativeRawSymbol::getBaseDataOffset() const {126  return 0;127}128 129uint32_t NativeRawSymbol::getBaseDataSlot() const {130  return 0;131}132 133SymIndexId NativeRawSymbol::getBaseSymbolId() const { return 0; }134 135PDB_BuiltinType NativeRawSymbol::getBuiltinType() const {136  return PDB_BuiltinType::None;137}138 139uint32_t NativeRawSymbol::getBitPosition() const {140  return 0;141}142 143PDB_CallingConv NativeRawSymbol::getCallingConvention() const {144  return PDB_CallingConv::FarStdCall;145}146 147SymIndexId NativeRawSymbol::getClassParentId() const { return 0; }148 149std::string NativeRawSymbol::getCompilerName() const {150  return {};151}152 153uint32_t NativeRawSymbol::getCount() const {154  return 0;155}156 157uint32_t NativeRawSymbol::getCountLiveRanges() const {158  return 0;159}160 161void NativeRawSymbol::getFrontEndVersion(VersionInfo &Version) const {162  Version.Major = 0;163  Version.Minor = 0;164  Version.Build = 0;165  Version.QFE = 0;166}167 168PDB_Lang NativeRawSymbol::getLanguage() const {169  return PDB_Lang::Cobol;170}171 172SymIndexId NativeRawSymbol::getLexicalParentId() const { return 0; }173 174std::string NativeRawSymbol::getLibraryName() const {175  return {};176}177 178uint32_t NativeRawSymbol::getLiveRangeStartAddressOffset() const {179  return 0;180}181 182uint32_t NativeRawSymbol::getLiveRangeStartAddressSection() const {183  return 0;184}185 186uint32_t NativeRawSymbol::getLiveRangeStartRelativeVirtualAddress() const {187  return 0;188}189 190codeview::RegisterId NativeRawSymbol::getLocalBasePointerRegisterId() const {191  return codeview::RegisterId::EAX;192}193 194SymIndexId NativeRawSymbol::getLowerBoundId() const { return 0; }195 196uint32_t NativeRawSymbol::getMemorySpaceKind() const {197  return 0;198}199 200std::string NativeRawSymbol::getName() const {201  return {};202}203 204uint32_t NativeRawSymbol::getNumberOfAcceleratorPointerTags() const {205  return 0;206}207 208uint32_t NativeRawSymbol::getNumberOfColumns() const {209  return 0;210}211 212uint32_t NativeRawSymbol::getNumberOfModifiers() const {213  return 0;214}215 216uint32_t NativeRawSymbol::getNumberOfRegisterIndices() const {217  return 0;218}219 220uint32_t NativeRawSymbol::getNumberOfRows() const {221  return 0;222}223 224std::string NativeRawSymbol::getObjectFileName() const {225  return {};226}227 228uint32_t NativeRawSymbol::getOemId() const {229  return 0;230}231 232SymIndexId NativeRawSymbol::getOemSymbolId() const { return 0; }233 234uint32_t NativeRawSymbol::getOffsetInUdt() const {235  return 0;236}237 238PDB_Cpu NativeRawSymbol::getPlatform() const {239  return PDB_Cpu::Intel8080;240}241 242uint32_t NativeRawSymbol::getRank() const {243  return 0;244}245 246codeview::RegisterId NativeRawSymbol::getRegisterId() const {247  return codeview::RegisterId::EAX;248}249 250uint32_t NativeRawSymbol::getRegisterType() const {251  return 0;252}253 254uint32_t NativeRawSymbol::getRelativeVirtualAddress() const {255  return 0;256}257 258uint32_t NativeRawSymbol::getSamplerSlot() const {259  return 0;260}261 262uint32_t NativeRawSymbol::getSignature() const {263  return 0;264}265 266uint32_t NativeRawSymbol::getSizeInUdt() const {267  return 0;268}269 270uint32_t NativeRawSymbol::getSlot() const {271  return 0;272}273 274std::string NativeRawSymbol::getSourceFileName() const {275  return {};276}277 278std::unique_ptr<IPDBLineNumber>279NativeRawSymbol::getSrcLineOnTypeDefn() const {280  return nullptr;281}282 283uint32_t NativeRawSymbol::getStride() const {284  return 0;285}286 287SymIndexId NativeRawSymbol::getSubTypeId() const { return 0; }288 289std::string NativeRawSymbol::getSymbolsFileName() const { return {}; }290 291SymIndexId NativeRawSymbol::getSymIndexId() const { return SymbolId; }292 293uint32_t NativeRawSymbol::getTargetOffset() const {294  return 0;295}296 297uint32_t NativeRawSymbol::getTargetRelativeVirtualAddress() const {298  return 0;299}300 301uint64_t NativeRawSymbol::getTargetVirtualAddress() const {302  return 0;303}304 305uint32_t NativeRawSymbol::getTargetSection() const {306  return 0;307}308 309uint32_t NativeRawSymbol::getTextureSlot() const {310  return 0;311}312 313uint32_t NativeRawSymbol::getTimeStamp() const {314  return 0;315}316 317uint32_t NativeRawSymbol::getToken() const {318  return 0;319}320 321SymIndexId NativeRawSymbol::getTypeId() const { return 0; }322 323uint32_t NativeRawSymbol::getUavSlot() const {324  return 0;325}326 327std::string NativeRawSymbol::getUndecoratedName() const {328  return {};329}330 331std::string NativeRawSymbol::getUndecoratedNameEx(332    PDB_UndnameFlags Flags) const {333  return {};334}335 336SymIndexId NativeRawSymbol::getUnmodifiedTypeId() const { return 0; }337 338SymIndexId NativeRawSymbol::getUpperBoundId() const { return 0; }339 340Variant NativeRawSymbol::getValue() const {341  return Variant();342}343 344uint32_t NativeRawSymbol::getVirtualBaseDispIndex() const {345  return 0;346}347 348uint32_t NativeRawSymbol::getVirtualBaseOffset() const {349  return 0;350}351 352SymIndexId NativeRawSymbol::getVirtualTableShapeId() const { return 0; }353 354std::unique_ptr<PDBSymbolTypeBuiltin>355NativeRawSymbol::getVirtualBaseTableType() const {356  return nullptr;357}358 359PDB_DataKind NativeRawSymbol::getDataKind() const {360  return PDB_DataKind::Unknown;361}362 363PDB_SymType NativeRawSymbol::getSymTag() const { return Tag; }364 365codeview::GUID NativeRawSymbol::getGuid() const { return codeview::GUID{{0}}; }366 367int32_t NativeRawSymbol::getOffset() const {368  return 0;369}370 371int32_t NativeRawSymbol::getThisAdjust() const {372  return 0;373}374 375int32_t NativeRawSymbol::getVirtualBasePointerOffset() const {376  return 0;377}378 379PDB_LocType NativeRawSymbol::getLocationType() const {380  return PDB_LocType::Null;381}382 383PDB_Machine NativeRawSymbol::getMachineType() const {384  return PDB_Machine::Invalid;385}386 387codeview::ThunkOrdinal NativeRawSymbol::getThunkOrdinal() const {388  return codeview::ThunkOrdinal::Standard;389}390 391uint64_t NativeRawSymbol::getLength() const {392  return 0;393}394 395uint64_t NativeRawSymbol::getLiveRangeLength() const {396  return 0;397}398 399uint64_t NativeRawSymbol::getVirtualAddress() const {400  return 0;401}402 403PDB_UdtType NativeRawSymbol::getUdtKind() const {404  return PDB_UdtType::Struct;405}406 407bool NativeRawSymbol::hasConstructor() const {408  return false;409}410 411bool NativeRawSymbol::hasCustomCallingConvention() const {412  return false;413}414 415bool NativeRawSymbol::hasFarReturn() const {416  return false;417}418 419bool NativeRawSymbol::isCode() const {420  return false;421}422 423bool NativeRawSymbol::isCompilerGenerated() const {424  return false;425}426 427bool NativeRawSymbol::isConstType() const {428  return false;429}430 431bool NativeRawSymbol::isEditAndContinueEnabled() const {432  return false;433}434 435bool NativeRawSymbol::isFunction() const {436  return false;437}438 439bool NativeRawSymbol::getAddressTaken() const {440  return false;441}442 443bool NativeRawSymbol::getNoStackOrdering() const {444  return false;445}446 447bool NativeRawSymbol::hasAlloca() const {448  return false;449}450 451bool NativeRawSymbol::hasAssignmentOperator() const {452  return false;453}454 455bool NativeRawSymbol::hasCTypes() const {456  return false;457}458 459bool NativeRawSymbol::hasCastOperator() const {460  return false;461}462 463bool NativeRawSymbol::hasDebugInfo() const {464  return false;465}466 467bool NativeRawSymbol::hasEH() const {468  return false;469}470 471bool NativeRawSymbol::hasEHa() const {472  return false;473}474 475bool NativeRawSymbol::hasInlAsm() const {476  return false;477}478 479bool NativeRawSymbol::hasInlineAttribute() const {480  return false;481}482 483bool NativeRawSymbol::hasInterruptReturn() const {484  return false;485}486 487bool NativeRawSymbol::hasFramePointer() const {488  return false;489}490 491bool NativeRawSymbol::hasLongJump() const {492  return false;493}494 495bool NativeRawSymbol::hasManagedCode() const {496  return false;497}498 499bool NativeRawSymbol::hasNestedTypes() const {500  return false;501}502 503bool NativeRawSymbol::hasNoInlineAttribute() const {504  return false;505}506 507bool NativeRawSymbol::hasNoReturnAttribute() const {508  return false;509}510 511bool NativeRawSymbol::hasOptimizedCodeDebugInfo() const {512  return false;513}514 515bool NativeRawSymbol::hasOverloadedOperator() const {516  return false;517}518 519bool NativeRawSymbol::hasSEH() const {520  return false;521}522 523bool NativeRawSymbol::hasSecurityChecks() const {524  return false;525}526 527bool NativeRawSymbol::hasSetJump() const {528  return false;529}530 531bool NativeRawSymbol::hasStrictGSCheck() const {532  return false;533}534 535bool NativeRawSymbol::isAcceleratorGroupSharedLocal() const {536  return false;537}538 539bool NativeRawSymbol::isAcceleratorPointerTagLiveRange() const {540  return false;541}542 543bool NativeRawSymbol::isAcceleratorStubFunction() const {544  return false;545}546 547bool NativeRawSymbol::isAggregated() const {548  return false;549}550 551bool NativeRawSymbol::isIntroVirtualFunction() const {552  return false;553}554 555bool NativeRawSymbol::isCVTCIL() const {556  return false;557}558 559bool NativeRawSymbol::isConstructorVirtualBase() const {560  return false;561}562 563bool NativeRawSymbol::isCxxReturnUdt() const {564  return false;565}566 567bool NativeRawSymbol::isDataAligned() const {568  return false;569}570 571bool NativeRawSymbol::isHLSLData() const {572  return false;573}574 575bool NativeRawSymbol::isHotpatchable() const {576  return false;577}578 579bool NativeRawSymbol::isIndirectVirtualBaseClass() const {580  return false;581}582 583bool NativeRawSymbol::isInterfaceUdt() const {584  return false;585}586 587bool NativeRawSymbol::isIntrinsic() const {588  return false;589}590 591bool NativeRawSymbol::isLTCG() const {592  return false;593}594 595bool NativeRawSymbol::isLocationControlFlowDependent() const {596  return false;597}598 599bool NativeRawSymbol::isMSILNetmodule() const {600  return false;601}602 603bool NativeRawSymbol::isMatrixRowMajor() const {604  return false;605}606 607bool NativeRawSymbol::isManagedCode() const {608  return false;609}610 611bool NativeRawSymbol::isMSILCode() const {612  return false;613}614 615bool NativeRawSymbol::isMultipleInheritance() const {616  return false;617}618 619bool NativeRawSymbol::isNaked() const {620  return false;621}622 623bool NativeRawSymbol::isNested() const {624  return false;625}626 627bool NativeRawSymbol::isOptimizedAway() const {628  return false;629}630 631bool NativeRawSymbol::isPacked() const {632  return false;633}634 635bool NativeRawSymbol::isPointerBasedOnSymbolValue() const {636  return false;637}638 639bool NativeRawSymbol::isPointerToDataMember() const {640  return false;641}642 643bool NativeRawSymbol::isPointerToMemberFunction() const {644  return false;645}646 647bool NativeRawSymbol::isPureVirtual() const {648  return false;649}650 651bool NativeRawSymbol::isRValueReference() const {652  return false;653}654 655bool NativeRawSymbol::isRefUdt() const {656  return false;657}658 659bool NativeRawSymbol::isReference() const {660  return false;661}662 663bool NativeRawSymbol::isRestrictedType() const {664  return false;665}666 667bool NativeRawSymbol::isReturnValue() const {668  return false;669}670 671bool NativeRawSymbol::isSafeBuffers() const {672  return false;673}674 675bool NativeRawSymbol::isScoped() const {676  return false;677}678 679bool NativeRawSymbol::isSdl() const {680  return false;681}682 683bool NativeRawSymbol::isSingleInheritance() const {684  return false;685}686 687bool NativeRawSymbol::isSplitted() const {688  return false;689}690 691bool NativeRawSymbol::isStatic() const {692  return false;693}694 695bool NativeRawSymbol::hasPrivateSymbols() const {696  return false;697}698 699bool NativeRawSymbol::isUnalignedType() const {700  return false;701}702 703bool NativeRawSymbol::isUnreached() const {704  return false;705}706 707bool NativeRawSymbol::isValueUdt() const {708  return false;709}710 711bool NativeRawSymbol::isVirtual() const {712  return false;713}714 715bool NativeRawSymbol::isVirtualBaseClass() const {716  return false;717}718 719bool NativeRawSymbol::isVirtualInheritance() const {720  return false;721}722 723bool NativeRawSymbol::isVolatileType() const {724  return false;725}726 727bool NativeRawSymbol::wasInlined() const {728  return false;729}730 731std::string NativeRawSymbol::getUnused() const {732  return {};733}734