LLVM: include/llvm/DebugInfo/CodeView/SymbolRecord.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_DEBUGINFO_CODEVIEW_SYMBOLRECORD_H

10#define LLVM_DEBUGINFO_CODEVIEW_SYMBOLRECORD_H

11

24#include

25#include

26

27namespace llvm {

29

31protected:

33

34public:

36

38};

39

40

41

43 static constexpr uint32_t RelocationOffset = 32;

44

45public:

49

53

65

67};

68

69

88

89

105

106

122

123

138

147

149public:

154

157

163

165

167};

168

179

181public:

186

187

188

191

193};

194

203

206 std::forward_iterator_tag,

207 DecodedAnnotation> {

211 : Data(Other.Data) {}

212

214 return Data == Other.Data;

215 }

216

218 Data = Other.Data;

219 return *this;

220 }

221

223 if (!ParseCurrentAnnotation()) {

225 return *this;

226 }

227 Data = Next;

229 Current.reset();

230 return *this;

231 }

232

234 ParseCurrentAnnotation();

235 return *Current;

236 }

237

238private:

241 return -1;

242

244

245 if ((FirstByte & 0x80) == 0x00)

246 return FirstByte;

247

249 return -1;

250

252

253 if ((FirstByte & 0xC0) == 0x80)

254 return ((FirstByte & 0x3F) << 8) | SecondByte;

255

257 return -1;

258

260

262 return -1;

263

265

266 if ((FirstByte & 0xE0) == 0xC0)

267 return ((FirstByte & 0x1F) << 24) | (SecondByte << 16) |

268 (ThirdByte << 8) | FourthByte;

269

270 return -1;

271 }

272

274 if (Operand & 1)

275 return -(Operand >> 1);

276 return Operand >> 1;

277 }

278

281 }

282

283 bool ParseCurrentAnnotation() {

284 if (Current)

285 return true;

286

287 Next = Data;

288 uint32_t Op = GetCompressedAnnotation(Next);

289 DecodedAnnotation Result;

291 switch (Result.OpCode) {

293 Result.Name = "Invalid";

294 Next = ArrayRef<uint8_t>();

295 break;

297 Result.Name = "CodeOffset";

298 Result.U1 = GetCompressedAnnotation(Next);

299 break;

301 Result.Name = "ChangeCodeOffsetBase";

302 Result.U1 = GetCompressedAnnotation(Next);

303 break;

305 Result.Name = "ChangeCodeOffset";

306 Result.U1 = GetCompressedAnnotation(Next);

307 break;

309 Result.Name = "ChangeCodeLength";

310 Result.U1 = GetCompressedAnnotation(Next);

311 break;

313 Result.Name = "ChangeFile";

314 Result.U1 = GetCompressedAnnotation(Next);

315 break;

317 Result.Name = "ChangeLineEndDelta";

318 Result.U1 = GetCompressedAnnotation(Next);

319 break;

321 Result.Name = "ChangeRangeKind";

322 Result.U1 = GetCompressedAnnotation(Next);

323 break;

325 Result.Name = "ChangeColumnStart";

326 Result.U1 = GetCompressedAnnotation(Next);

327 break;

329 Result.Name = "ChangeColumnEnd";

330 Result.U1 = GetCompressedAnnotation(Next);

331 break;

333 Result.Name = "ChangeLineOffset";

334 Result.S1 = DecodeSignedOperand(Next);

335 break;

337 Result.Name = "ChangeColumnEndDelta";

338 Result.S1 = DecodeSignedOperand(Next);

339 break;

341 Result.Name = "ChangeCodeOffsetAndLineOffset";

342 uint32_t Annotation = GetCompressedAnnotation(Next);

343 Result.S1 = DecodeSignedOperand(Annotation >> 4);

345 break;

346 }

348 Result.Name = "ChangeCodeLengthAndCodeOffset";

349 Result.U1 = GetCompressedAnnotation(Next);

350 Result.U2 = GetCompressedAnnotation(Next);

351 break;

352 }

353 }

354 Result.Bytes = Data.take_front(Data.size() - Next.size());

356 return true;

357 }

358

359 std::optional Current;

360 ArrayRef<uint8_t> Data;

361 ArrayRef<uint8_t> Next;

362};

363

364

366public:

371

376

381

383};

384

391

392

408

409

423

424

440

441

454

460

465

467

468

470 static constexpr uint32_t RelocationOffset = 8;

471

472public:

477

481

484 std::vector Gaps;

485

487};

488

489

491 static constexpr uint32_t RelocationOffset = 12;

492

493public:

498

502

506 std::vector Gaps;

507

509};

510

515

516

518public:

523

525

528 std::vector Gaps;

529

531};

532

538

539

541public:

547

549

552 std::vector Gaps;

553

555};

556

560

561

563 static constexpr uint32_t RelocationOffset = 8;

564

565public:

571

575

578 std::vector Gaps;

579

581};

582

588

589

591public:

596

597

598

599

600

604 };

605

608

610

613 std::vector Gaps;

614

616};

617

618

631

632

634 static constexpr uint32_t RelocationOffset = 16;

635

636public:

640

644

651

653};

654

655

657 static constexpr uint32_t RelocationOffset = 4;

658

659public:

663

667

672

674};

675

676

690

691

703

704

717

718

733

734

736public:

741

752

755

757};

758

759

761public:

767

779

783

790

795

797};

798

799

801public:

806

814

815

820

821

826

828

829private:

830};

831

832

834 static constexpr uint32_t RelocationOffset = 4;

835

836public:

840

844

848

850};

851

852

854 static constexpr uint32_t RelocationOffset = 4;

855

856public:

861

865

870

872};

873

874

876 static constexpr uint32_t RelocationOffset = 4;

877

878public:

882

886

891

893};

894

895

907

908

920

921

935

936

951

952

966

967

969 static constexpr uint32_t RelocationOffset = 8;

970

971public:

975

979

984

986};

987

988

990 static constexpr uint32_t RelocationOffset = 8;

991

992public:

997

1001

1006

1008};

1009

1010

1012public:

1017

1019

1021};

1022

1023

1025public:

1030

1034

1036};

1037

1040

1041}

1042}

1043

1044#endif

This file implements the APSInt class, which is a simple class that represents an arbitrary sized int...

static DecodeStatus DecodeSignedOperand(MCInst &Inst, unsigned InsnS, uint64_t Address=0, const MCDisassembler *Decoder=nullptr)

Lightweight arrays that are backed by an arbitrary BinaryStream.

An arbitrary precision integer that knows its signedness.

Annotations lets you mark points and ranges inside source code, for tests:

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.

Tagged union holding either a T or a Error.

StringRef - Represent a constant reference to a string, i.e.

std::vector< StringRef > Strings

Definition SymbolRecord.h:1033

AnnotationSym(uint32_t RecordOffset)

Definition SymbolRecord.h:1027

AnnotationSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:1026

uint32_t CodeOffset

Definition SymbolRecord.h:1031

uint16_t Segment

Definition SymbolRecord.h:1032

uint32_t RecordOffset

Definition SymbolRecord.h:1035

int32_t Offset

Definition SymbolRecord.h:929

TypeIndex Type

Definition SymbolRecord.h:930

StringRef Name

Definition SymbolRecord.h:931

BPRelativeSym(uint32_t RecordOffset)

Definition SymbolRecord.h:925

BPRelativeSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:924

uint32_t RecordOffset

Definition SymbolRecord.h:933

uint32_t CodeOffset

Definition SymbolRecord.h:648

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:641

BlockSym(uint32_t RecordOffset)

Definition SymbolRecord.h:638

uint32_t CodeSize

Definition SymbolRecord.h:647

uint16_t Segment

Definition SymbolRecord.h:649

uint32_t End

Definition SymbolRecord.h:646

StringRef Name

Definition SymbolRecord.h:650

uint32_t Parent

Definition SymbolRecord.h:645

uint32_t RecordOffset

Definition SymbolRecord.h:652

BlockSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:637

BuildInfoSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:911

TypeIndex BuildId

Definition SymbolRecord.h:916

uint32_t RecordOffset

Definition SymbolRecord.h:918

BuildInfoSym(uint32_t RecordOffset)

Definition SymbolRecord.h:912

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:841

uint32_t RecordOffset

Definition SymbolRecord.h:849

CallSiteInfoSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:837

uint16_t Segment

Definition SymbolRecord.h:846

CallSiteInfoSym(uint32_t RecordOffset)

Definition SymbolRecord.h:838

uint32_t CodeOffset

Definition SymbolRecord.h:845

TypeIndex Type

Definition SymbolRecord.h:847

CallerSym(SymbolRecordKind Kind, uint32_t RecordOffset)

Definition SymbolRecord.h:172

std::vector< TypeIndex > Indices

Definition SymbolRecord.h:175

uint32_t RecordOffset

Definition SymbolRecord.h:177

CallerSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:171

uint16_t Segment

Definition SymbolRecord.h:133

uint32_t RecordOffset

Definition SymbolRecord.h:136

StringRef Name

Definition SymbolRecord.h:134

CoffGroupSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:126

uint32_t Size

Definition SymbolRecord.h:130

CoffGroupSym(SymbolRecordKind Kind, uint32_t RecordOffset)

Definition SymbolRecord.h:127

uint32_t Characteristics

Definition SymbolRecord.h:131

uint32_t Offset

Definition SymbolRecord.h:132

uint8_t getLanguage() const

Definition SymbolRecord.h:753

Compile2Sym(uint32_t RecordOffset)

Definition SymbolRecord.h:738

uint32_t getFlags() const

Definition SymbolRecord.h:754

Compile2Sym(SymbolRecordKind Kind)

Definition SymbolRecord.h:737

uint16_t VersionBackendMajor

Definition SymbolRecord.h:747

CompileSym2Flags Flags

Definition SymbolRecord.h:742

uint16_t VersionFrontendMajor

Definition SymbolRecord.h:744

uint16_t VersionBackendMinor

Definition SymbolRecord.h:748

uint16_t VersionFrontendMinor

Definition SymbolRecord.h:745

StringRef Version

Definition SymbolRecord.h:750

uint16_t VersionBackendBuild

Definition SymbolRecord.h:749

uint16_t VersionFrontendBuild

Definition SymbolRecord.h:746

std::vector< StringRef > ExtraStrings

Definition SymbolRecord.h:751

uint32_t RecordOffset

Definition SymbolRecord.h:756

CPUType Machine

Definition SymbolRecord.h:743

Compile3Sym()

Definition SymbolRecord.h:762

CompileSym3Flags getFlags() const

Definition SymbolRecord.h:787

uint16_t VersionBackendBuild

Definition SymbolRecord.h:776

Compile3Sym(SymbolRecordKind Kind)

Definition SymbolRecord.h:763

uint16_t VersionBackendQFE

Definition SymbolRecord.h:777

Compile3Sym(uint32_t RecordOffset)

Definition SymbolRecord.h:764

CompileSym3Flags Flags

Definition SymbolRecord.h:768

SourceLanguage getLanguage() const

Definition SymbolRecord.h:784

StringRef Version

Definition SymbolRecord.h:778

uint16_t VersionFrontendMajor

Definition SymbolRecord.h:770

void setLanguage(SourceLanguage Lang)

Definition SymbolRecord.h:780

bool hasOptimizations() const

Definition SymbolRecord.h:791

uint16_t VersionBackendMajor

Definition SymbolRecord.h:774

CPUType Machine

Definition SymbolRecord.h:769

uint16_t VersionBackendMinor

Definition SymbolRecord.h:775

uint16_t VersionFrontendBuild

Definition SymbolRecord.h:772

uint16_t VersionFrontendMinor

Definition SymbolRecord.h:771

uint16_t VersionFrontendQFE

Definition SymbolRecord.h:773

uint32_t RecordOffset

Definition SymbolRecord.h:796

APSInt Value

Definition SymbolRecord.h:961

StringRef Name

Definition SymbolRecord.h:962

ConstantSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:955

ConstantSym(uint32_t RecordOffset)

Definition SymbolRecord.h:956

TypeIndex Type

Definition SymbolRecord.h:960

uint32_t RecordOffset

Definition SymbolRecord.h:964

uint16_t Segment

Definition SymbolRecord.h:982

TypeIndex Type

Definition SymbolRecord.h:980

DataSym(uint32_t RecordOffset)

Definition SymbolRecord.h:973

uint32_t DataOffset

Definition SymbolRecord.h:981

StringRef Name

Definition SymbolRecord.h:983

uint32_t RecordOffset

Definition SymbolRecord.h:985

DataSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:972

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:976

uint32_t RecordOffset

Definition SymbolRecord.h:629

DefRangeFramePointerRelFullScopeSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:621

DefRangeFramePointerRelFullScopeSym(uint32_t RecordOffset)

Definition SymbolRecord.h:623

int32_t Offset

Definition SymbolRecord.h:627

DefRangeFramePointerRelSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:566

DefRangeFramePointerRelSym(uint32_t RecordOffset)

Definition SymbolRecord.h:568

DefRangeFramePointerRelHeader Hdr

Definition SymbolRecord.h:576

LocalVariableAddrRange Range

Definition SymbolRecord.h:577

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:572

uint32_t RecordOffset

Definition SymbolRecord.h:580

std::vector< LocalVariableAddrGap > Gaps

Definition SymbolRecord.h:578

uint32_t RecordOffset

Definition SymbolRecord.h:615

DefRangeRegisterRelHeader Hdr

Definition SymbolRecord.h:611

bool hasSpilledUDTMember() const

Definition SymbolRecord.h:606

@ OffsetInParentShift

Definition SymbolRecord.h:603

@ IsSubfieldFlag

Definition SymbolRecord.h:602

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:609

uint16_t offsetInParent() const

Definition SymbolRecord.h:607

std::vector< LocalVariableAddrGap > Gaps

Definition SymbolRecord.h:613

DefRangeRegisterRelSym(uint32_t RecordOffset)

Definition SymbolRecord.h:593

LocalVariableAddrRange Range

Definition SymbolRecord.h:612

DefRangeRegisterRelSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:592

uint32_t RecordOffset

Definition SymbolRecord.h:530

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:524

DefRangeRegisterSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:519

std::vector< LocalVariableAddrGap > Gaps

Definition SymbolRecord.h:528

LocalVariableAddrRange Range

Definition SymbolRecord.h:527

DefRangeRegisterSym(uint32_t RecordOffset)

Definition SymbolRecord.h:520

DefRangeRegisterHeader Hdr

Definition SymbolRecord.h:526

uint32_t RecordOffset

Definition SymbolRecord.h:554

DefRangeSubfieldRegisterSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:542

LocalVariableAddrRange Range

Definition SymbolRecord.h:551

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:548

std::vector< LocalVariableAddrGap > Gaps

Definition SymbolRecord.h:552

DefRangeSubfieldRegisterHeader Hdr

Definition SymbolRecord.h:550

DefRangeSubfieldRegisterSym(uint32_t RecordOffset)

Definition SymbolRecord.h:544

DefRangeSubfieldSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:494

uint32_t Program

Definition SymbolRecord.h:503

std::vector< LocalVariableAddrGap > Gaps

Definition SymbolRecord.h:506

DefRangeSubfieldSym(uint32_t RecordOffset)

Definition SymbolRecord.h:495

uint32_t RecordOffset

Definition SymbolRecord.h:508

LocalVariableAddrRange Range

Definition SymbolRecord.h:505

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:499

uint16_t OffsetInParent

Definition SymbolRecord.h:504

DefRangeSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:473

std::vector< LocalVariableAddrGap > Gaps

Definition SymbolRecord.h:484

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:478

DefRangeSym(uint32_t RecordOffset)

Definition SymbolRecord.h:474

uint32_t RecordOffset

Definition SymbolRecord.h:486

LocalVariableAddrRange Range

Definition SymbolRecord.h:483

uint32_t Program

Definition SymbolRecord.h:482

uint32_t RecordOffset

Definition SymbolRecord.h:701

EnvBlockSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:694

std::vector< StringRef > Fields

Definition SymbolRecord.h:699

EnvBlockSym(uint32_t RecordOffset)

Definition SymbolRecord.h:695

ExportSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:707

uint32_t RecordOffset

Definition SymbolRecord.h:715

ExportSym(uint32_t RecordOffset)

Definition SymbolRecord.h:708

StringRef Name

Definition SymbolRecord.h:713

ExportFlags Flags

Definition SymbolRecord.h:712

uint16_t Ordinal

Definition SymbolRecord.h:711

StringRef Name

Definition SymbolRecord.h:729

uint32_t RecordOffset

Definition SymbolRecord.h:731

FileStaticSym(uint32_t RecordOffset)

Definition SymbolRecord.h:722

TypeIndex Index

Definition SymbolRecord.h:726

FileStaticSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:721

LocalSymFlags Flags

Definition SymbolRecord.h:728

uint32_t ModFilenameOffset

Definition SymbolRecord.h:727

uint32_t CodeOffset

Definition SymbolRecord.h:887

uint32_t RecordOffset

Definition SymbolRecord.h:892

uint8_t Flags

Definition SymbolRecord.h:890

FrameCookieSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:879

uint16_t Register

Definition SymbolRecord.h:888

FrameCookieKind CookieKind

Definition SymbolRecord.h:889

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:883

FrameCookieSym(uint32_t RecordOffset)

Definition SymbolRecord.h:880

uint32_t BytesOfCalleeSavedRegisters

Definition SymbolRecord.h:810

uint32_t TotalFrameBytes

Definition SymbolRecord.h:807

uint16_t SectionIdOfExceptionHandler

Definition SymbolRecord.h:812

uint32_t OffsetToPadding

Definition SymbolRecord.h:809

uint32_t PaddingFrameBytes

Definition SymbolRecord.h:808

FrameProcSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:802

FrameProcSym(uint32_t RecordOffset)

Definition SymbolRecord.h:803

RegisterId getLocalFramePtrReg(CPUType CPU) const

Extract the register this frame uses to refer to local variables.

Definition SymbolRecord.h:816

RegisterId getParamFramePtrReg(CPUType CPU) const

Extract the register this frame uses to refer to parameters.

Definition SymbolRecord.h:822

uint32_t OffsetOfExceptionHandler

Definition SymbolRecord.h:811

FrameProcedureOptions Flags

Definition SymbolRecord.h:813

uint32_t RecordOffset

Definition SymbolRecord.h:827

uint16_t CallInstructionSize

Definition SymbolRecord.h:868

uint32_t RecordOffset

Definition SymbolRecord.h:871

uint32_t CodeOffset

Definition SymbolRecord.h:866

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:862

uint16_t Segment

Definition SymbolRecord.h:867

HeapAllocationSiteSym(uint32_t RecordOffset)

Definition SymbolRecord.h:858

HeapAllocationSiteSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:857

TypeIndex Type

Definition SymbolRecord.h:869

HotPatchFuncSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:182

uint32_t RecordOffset

Definition SymbolRecord.h:192

HotPatchFuncSym(uint32_t RecordOffset)

Definition SymbolRecord.h:183

TypeIndex Function

Definition SymbolRecord.h:189

StringRef Name

Definition SymbolRecord.h:190

TypeIndex Inlinee

Definition SymbolRecord.h:379

uint32_t End

Definition SymbolRecord.h:378

std::vector< uint8_t > AnnotationData

Definition SymbolRecord.h:380

uint32_t RecordOffset

Definition SymbolRecord.h:382

uint32_t Parent

Definition SymbolRecord.h:377

InlineSiteSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:367

iterator_range< BinaryAnnotationIterator > annotations() const

Definition SymbolRecord.h:372

InlineSiteSym(uint32_t RecordOffset)

Definition SymbolRecord.h:368

JumpTableSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:150

uint16_t BaseSegment

Definition SymbolRecord.h:156

uint16_t TableSegment

Definition SymbolRecord.h:162

uint16_t BranchSegment

Definition SymbolRecord.h:161

uint32_t BaseOffset

Definition SymbolRecord.h:155

JumpTableEntrySize SwitchType

Definition SymbolRecord.h:158

uint32_t TableOffset

Definition SymbolRecord.h:160

JumpTableSym(uint32_t RecordOffset)

Definition SymbolRecord.h:151

uint32_t EntriesCount

Definition SymbolRecord.h:164

uint32_t RecordOffset

Definition SymbolRecord.h:166

uint32_t BranchOffset

Definition SymbolRecord.h:159

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:664

uint16_t Segment

Definition SymbolRecord.h:669

StringRef Name

Definition SymbolRecord.h:671

uint32_t CodeOffset

Definition SymbolRecord.h:668

LabelSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:660

LabelSym(uint32_t RecordOffset)

Definition SymbolRecord.h:661

uint32_t RecordOffset

Definition SymbolRecord.h:673

ProcSymFlags Flags

Definition SymbolRecord.h:670

StringRef Name

Definition SymbolRecord.h:450

TypeIndex Type

Definition SymbolRecord.h:448

LocalSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:444

LocalSymFlags Flags

Definition SymbolRecord.h:449

LocalSym(uint32_t RecordOffset)

Definition SymbolRecord.h:445

uint32_t RecordOffset

Definition SymbolRecord.h:452

ObjNameSym()

Definition SymbolRecord.h:679

ObjNameSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:680

uint32_t Signature

Definition SymbolRecord.h:685

uint32_t RecordOffset

Definition SymbolRecord.h:688

ObjNameSym(uint32_t RecordOffset)

Definition SymbolRecord.h:681

StringRef Name

Definition SymbolRecord.h:686

uint16_t Module

Definition SymbolRecord.h:434

ProcRefSym(uint32_t RecordOffset)

Definition SymbolRecord.h:428

uint32_t SumName

Definition SymbolRecord.h:432

ProcRefSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:427

uint32_t SymOffset

Definition SymbolRecord.h:433

StringRef Name

Definition SymbolRecord.h:435

uint32_t RecordOffset

Definition SymbolRecord.h:438

uint16_t modi() const

Definition SymbolRecord.h:437

uint32_t DbgStart

Definition SymbolRecord.h:58

ProcSym(SymbolRecordKind Kind, uint32_t RecordOffset)

Definition SymbolRecord.h:47

uint32_t RecordOffset

Definition SymbolRecord.h:66

uint32_t End

Definition SymbolRecord.h:55

uint32_t Next

Definition SymbolRecord.h:56

TypeIndex FunctionType

Definition SymbolRecord.h:60

uint32_t CodeOffset

Definition SymbolRecord.h:61

StringRef Name

Definition SymbolRecord.h:64

uint16_t Segment

Definition SymbolRecord.h:62

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:50

uint32_t CodeSize

Definition SymbolRecord.h:57

ProcSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:46

uint32_t DbgEnd

Definition SymbolRecord.h:59

uint32_t Parent

Definition SymbolRecord.h:54

ProcSymFlags Flags

Definition SymbolRecord.h:63

PublicSym32(SymbolRecordKind Kind)

Definition SymbolRecord.h:396

PublicSymFlags Flags

Definition SymbolRecord.h:401

StringRef Name

Definition SymbolRecord.h:404

PublicSym32()

Definition SymbolRecord.h:395

uint16_t Segment

Definition SymbolRecord.h:403

PublicSym32(uint32_t RecordOffset)

Definition SymbolRecord.h:397

uint32_t Offset

Definition SymbolRecord.h:402

uint32_t RecordOffset

Definition SymbolRecord.h:406

RegRelativeSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:939

uint32_t RecordOffset

Definition SymbolRecord.h:949

TypeIndex Type

Definition SymbolRecord.h:945

StringRef Name

Definition SymbolRecord.h:947

uint32_t Offset

Definition SymbolRecord.h:944

RegRelativeSym(uint32_t RecordOffset)

Definition SymbolRecord.h:940

RegisterId Register

Definition SymbolRecord.h:946

uint32_t RecordOffset

Definition SymbolRecord.h:421

RegisterId Register

Definition SymbolRecord.h:418

StringRef Name

Definition SymbolRecord.h:419

RegisterSym(uint32_t RecordOffset)

Definition SymbolRecord.h:413

TypeIndex Index

Definition SymbolRecord.h:417

RegisterSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:412

uint32_t RecordOffset

Definition SymbolRecord.h:145

ScopeEndSym(SymbolRecordKind Kind, uint32_t RecordOffset)

Definition SymbolRecord.h:142

ScopeEndSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:141

SectionSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:109

uint32_t Length

Definition SymbolRecord.h:116

uint32_t Rva

Definition SymbolRecord.h:115

uint16_t SectionNumber

Definition SymbolRecord.h:113

uint32_t Characteristics

Definition SymbolRecord.h:117

uint8_t Alignment

Definition SymbolRecord.h:114

uint32_t RecordOffset

Definition SymbolRecord.h:120

StringRef Name

Definition SymbolRecord.h:118

SectionSym(SymbolRecordKind Kind, uint32_t RecordOffset)

Definition SymbolRecord.h:110

SymbolRecord(SymbolRecordKind Kind)

Definition SymbolRecord.h:32

SymbolRecordKind Kind

Definition SymbolRecord.h:37

SymbolRecordKind getKind() const

Definition SymbolRecord.h:35

ThreadLocalDataSym(uint32_t RecordOffset)

Definition SymbolRecord.h:994

uint32_t getRelocationOffset() const

Definition SymbolRecord.h:998

ThreadLocalDataSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:993

uint32_t DataOffset

Definition SymbolRecord.h:1003

TypeIndex Type

Definition SymbolRecord.h:1002

StringRef Name

Definition SymbolRecord.h:1005

uint16_t Segment

Definition SymbolRecord.h:1004

uint32_t RecordOffset

Definition SymbolRecord.h:1007

uint32_t RecordOffset

Definition SymbolRecord.h:86

uint32_t End

Definition SymbolRecord.h:77

uint16_t Segment

Definition SymbolRecord.h:80

StringRef Name

Definition SymbolRecord.h:83

ArrayRef< uint8_t > VariantData

Definition SymbolRecord.h:84

uint32_t Next

Definition SymbolRecord.h:78

uint32_t Parent

Definition SymbolRecord.h:76

uint16_t Length

Definition SymbolRecord.h:81

Thunk32Sym(SymbolRecordKind Kind, uint32_t RecordOffset)

Definition SymbolRecord.h:73

ThunkOrdinal Thunk

Definition SymbolRecord.h:82

uint32_t Offset

Definition SymbolRecord.h:79

Thunk32Sym(SymbolRecordKind Kind)

Definition SymbolRecord.h:72

uint16_t ThunkSection

Definition SymbolRecord.h:100

TrampolineSym(SymbolRecordKind Kind, uint32_t RecordOffset)

Definition SymbolRecord.h:93

uint32_t TargetOffset

Definition SymbolRecord.h:99

uint32_t ThunkOffset

Definition SymbolRecord.h:98

TrampolineSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:92

TrampolineType Type

Definition SymbolRecord.h:96

uint32_t RecordOffset

Definition SymbolRecord.h:103

uint16_t TargetSection

Definition SymbolRecord.h:101

uint16_t Size

Definition SymbolRecord.h:97

UDTSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:898

TypeIndex Type

Definition SymbolRecord.h:902

StringRef Name

Definition SymbolRecord.h:903

uint32_t RecordOffset

Definition SymbolRecord.h:905

UDTSym(uint32_t RecordOffset)

Definition SymbolRecord.h:899

UsingNamespaceSym(uint32_t RecordOffset)

Definition SymbolRecord.h:1014

StringRef Name

Definition SymbolRecord.h:1018

UsingNamespaceSym(SymbolRecordKind Kind)

Definition SymbolRecord.h:1013

uint32_t RecordOffset

Definition SymbolRecord.h:1020

CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of ...

A range adaptor for a pair of iterators.

This provides a very simple, boring adaptor for a begin and end iterator into a range type.

@ ChangeCodeLengthAndCodeOffset

@ ChangeCodeOffsetAndLineOffset

ProcSymFlags

Corresponds to the CV_PROCFLAGS bitfield.

LocalSymFlags

Corresponds to CV_LVARFLAGS bitfield.

@ MaxDefRange

Definition SymbolRecord.h:466

CompileSym2Flags

Corresponds to COMPILESYM2::Flags bitfield.

CPUType

These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn....

CompileSym3Flags

Corresponds to COMPILESYM3::Flags bitfield.

SymbolRecordKind

Distinguishes individual records in the Symbols subsection of a .debug$S section.

ThunkOrdinal

These values correspond to the THUNK_ORDINAL enumeration.

EncodedFramePtrReg

Two-bit value indicating which register is the designated frame pointer register.

LLVM_ABI RegisterId decodeFramePtrReg(EncodedFramePtrReg EncodedReg, CPUType CPU)

PublicSymFlags

Corresponds to the CV_PUBSYMFLAGS bitfield.

SourceLanguage

These values correspond to the CV_CFL_LANG enumeration in the Microsoft Debug Interface Access SDK,...

LLVM_ABI Expected< CVSymbol > readSymbolFromStream(BinaryStreamRef Stream, uint32_t Offset)

detail::packed_endian_specific_integral< uint32_t, llvm::endianness::little, unaligned > ulittle32_t

detail::packed_endian_specific_integral< uint16_t, llvm::endianness::little, unaligned > ulittle16_t

detail::packed_endian_specific_integral< int32_t, llvm::endianness::little, unaligned > little32_t

This is an optimization pass for GlobalISel generic memory operations.

iterator_range< T > make_range(T x, T y)

Convenience function for iterating over sub-ranges.

DWARFExpression::Operation Op

Definition SymbolRecord.h:207

BinaryAnnotationIterator & operator=(const BinaryAnnotationIterator Other)

Definition SymbolRecord.h:217

BinaryAnnotationIterator & operator++()

Definition SymbolRecord.h:222

BinaryAnnotationIterator(const BinaryAnnotationIterator &Other)

Definition SymbolRecord.h:210

const DecodedAnnotation & operator*()

Definition SymbolRecord.h:233

bool operator==(BinaryAnnotationIterator Other) const

Definition SymbolRecord.h:213

BinaryAnnotationIterator()=default

BinaryAnnotationIterator(ArrayRef< uint8_t > Annotations)

Definition SymbolRecord.h:209

Definition SymbolRecord.h:195

int32_t S1

Definition SymbolRecord.h:201

StringRef Name

Definition SymbolRecord.h:196

BinaryAnnotationsOpCode OpCode

Definition SymbolRecord.h:198

uint32_t U2

Definition SymbolRecord.h:200

uint32_t U1

Definition SymbolRecord.h:199

ArrayRef< uint8_t > Bytes

Definition SymbolRecord.h:197

Definition SymbolRecord.h:461

uint16_t Range

Definition SymbolRecord.h:463

uint16_t GapStartOffset

Definition SymbolRecord.h:462

Definition SymbolRecord.h:455

uint32_t OffsetStart

Definition SymbolRecord.h:456

uint16_t ISectStart

Definition SymbolRecord.h:457

uint16_t Range

Definition SymbolRecord.h:458