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