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

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H

14#define LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H

15

17#include

18

21

22namespace llvm {

24

25

26

28#define TYPE_RECORD(lf_ename, value, name) name = value,

29#include "CodeViewTypes.def"

30};

31

32

33

35#define CV_TYPE(name, val) name = val,

36#include "CodeViewTypes.def"

37};

38

39

40

42#define SYMBOL_RECORD(lf_ename, value, name) name = value,

43#include "CodeViewSymbols.def"

44};

46

47

49#define CV_SYMBOL(name, val) name = val,

50#include "CodeViewSymbols.def"

51};

52

53#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class) \

54 inline Class operator|(Class a, Class b) { \

55 return static_cast(llvm::to_underlying(a) | \

56 llvm::to_underlying(b)); \

58 inline Class operator&(Class a, Class b) { \

59 return static_cast(llvm::to_underlying(a) & \

60 llvm::to_underlying(b)); \

61 } \

62 inline Class operator~(Class a) { \

63 return static_cast(~llvm::to_underlying(a)); \

64 } \

65 inline Class &operator|=(Class &a, Class b) { \

66 a = a | b; \

67 return a; \

68 } \

69 inline Class &operator&=(Class &a, Class b) { \

70 a = a & b; \

71 return a; \

72 }

73

74

75

142

143

144

145

147#define CV_LANGUAGE(NAME, ID) NAME = ID,

148#include "CodeViewLanguages.def"

149};

150

151

152

153

154

155

157 NearC = 0x00,

158 FarC = 0x01,

159 NearPascal = 0x02,

160 FarPascal = 0x03,

161 NearFast = 0x04,

162 FarFast = 0x05,

167 ThisCall = 0x0b,

169 Generic = 0x0d,

172 SHCall = 0x10,

176 SH5Call = 0x14,

180 0x17,

181 NearVector = 0x18,

183};

184

201

227

235

242

243

250

251

261

262

274

275

280

281

282

290

291

293

316

317

333

334

342

343

356

357

369

379

386

387

403

404

413

414

427

428

443

444

462

473

474

491

492

499

500

502#define CV_REGISTERS_ALL

503#define CV_REGISTER(name, value) name = value,

504#include "CodeViewRegisters.def"

505#undef CV_REGISTER

506#undef CV_REGISTERS_ALL

507};

508

509

510

514 this->Cpu = Cpu;

515 this->Reg = Reg;

516 }

519};

520

521

522

529

531 CPUType CPU);

532

534

535

545

547

548

550

555

556

573

574

575

576

577

578

579

580

585

591

593

596 return 1;

597 return 4;

598}

599

600

601

602

603

604

605

606

607

608

622}

623}

624

625#endif

#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)

Definition CodeView.h:53

This file contains library features backported from future STL versions.

DebugSubsectionKind

Definition CodeView.h:294

@ TypeMDTokenMap

Definition CodeView.h:308

@ CrossScopeExports

Definition CodeView.h:303

@ ILLines

Definition CodeView.h:306

@ Symbols

Definition CodeView.h:296

@ InlineeLines

Definition CodeView.h:301

@ CoffSymbolRVA

Definition CodeView.h:311

@ FileChecksums

Definition CodeView.h:299

@ FuncMDTokenMap

Definition CodeView.h:307

@ XfgHashVirtual

Definition CodeView.h:314

@ MergedAssemblyInput

Definition CodeView.h:309

@ Lines

Definition CodeView.h:297

@ XfgHashType

Definition CodeView.h:313

@ CrossScopeImports

Definition CodeView.h:302

@ StringTable

Definition CodeView.h:298

BinaryAnnotationsOpCode

Definition CodeView.h:475

@ ChangeFile

Definition CodeView.h:481

@ ChangeCodeLengthAndCodeOffset

Definition CodeView.h:488

@ Invalid

Definition CodeView.h:476

@ ChangeColumnEnd

Definition CodeView.h:489

@ ChangeColumnStart

Definition CodeView.h:485

@ ChangeRangeKind

Definition CodeView.h:484

@ ChangeColumnEndDelta

Definition CodeView.h:486

@ ChangeLineOffset

Definition CodeView.h:482

@ ChangeCodeLength

Definition CodeView.h:480

@ ChangeLineEndDelta

Definition CodeView.h:483

@ ChangeCodeOffsetBase

Definition CodeView.h:478

@ ChangeCodeOffset

Definition CodeView.h:479

@ CodeOffset

Definition CodeView.h:477

@ ChangeCodeOffsetAndLineOffset

Definition CodeView.h:487

PointerMode

Equivalent to CV_ptrmode_e.

Definition CodeView.h:335

@ LValueReference

Definition CodeView.h:337

@ Pointer

Definition CodeView.h:336

@ RValueReference

Definition CodeView.h:340

@ PointerToDataMember

Definition CodeView.h:338

@ PointerToMemberFunction

Definition CodeView.h:339

ProcSymFlags

Corresponds to the CV_PROCFLAGS bitfield.

Definition CodeView.h:415

@ HasOptimizedDebugInfo

Definition CodeView.h:424

@ HasCustomCallingConv

Definition CodeView.h:422

@ IsNoReturn

Definition CodeView.h:420

@ IsNoInline

Definition CodeView.h:423

@ HasIRET

Definition CodeView.h:418

@ HasFRET

Definition CodeView.h:419

@ IsUnreachable

Definition CodeView.h:421

@ HasFP

Definition CodeView.h:417

PointerOptions

Equivalent to misc lfPointerAttr bitfields.

Definition CodeView.h:344

@ Restrict

Definition CodeView.h:350

@ Flat32

Definition CodeView.h:346

@ LValueRefThisPointer

Definition CodeView.h:352

@ RValueRefThisPointer

Definition CodeView.h:353

@ WinRTSmartPointer

Definition CodeView.h:351

@ SubsectionIgnoreFlag

Definition CodeView.h:292

LocalSymFlags

Corresponds to CV_LVARFLAGS bitfield.

Definition CodeView.h:388

@ IsAggregate

Definition CodeView.h:393

@ IsEnregisteredGlobal

Definition CodeView.h:399

@ IsAddressTaken

Definition CodeView.h:391

@ IsParameter

Definition CodeView.h:390

@ IsOptimizedOut

Definition CodeView.h:398

@ IsEnregisteredStatic

Definition CodeView.h:400

@ IsReturnValue

Definition CodeView.h:397

@ IsAggregated

Definition CodeView.h:394

@ IsAliased

Definition CodeView.h:395

@ IsAlias

Definition CodeView.h:396

@ IsCompilerGenerated

Definition CodeView.h:392

MethodKind

Part of member attribute flags. (CV_methodprop_e)

Definition CodeView.h:252

@ PureVirtual

Definition CodeView.h:258

@ Virtual

Definition CodeView.h:254

@ Vanilla

Definition CodeView.h:253

@ Static

Definition CodeView.h:255

@ Friend

Definition CodeView.h:256

@ IntroducingVirtual

Definition CodeView.h:257

@ PureIntroducingVirtual

Definition CodeView.h:259

RegisterId

Definition CodeView.h:501

CompileSym2Flags

Corresponds to COMPILESYM2::Flags bitfield.

Definition CodeView.h:429

@ NoDataAlign

Definition CodeView.h:435

@ EC

Definition CodeView.h:432

@ NoDbgInfo

Definition CodeView.h:433

@ LTCG

Definition CodeView.h:434

@ CVTCIL

Definition CodeView.h:439

@ MSILModule

Definition CodeView.h:440

@ ManagedPresent

Definition CodeView.h:436

@ HotPatch

Definition CodeView.h:438

@ SourceLanguageMask

Definition CodeView.h:431

LineFlags

Definition CodeView.h:551

@ LF_HaveColumns

Definition CodeView.h:553

@ LF_None

Definition CodeView.h:552

PointerKind

Equivalent to CV_ptrtype_e.

Definition CodeView.h:318

@ BasedOnAddress

Definition CodeView.h:325

@ BasedOnSelf

Definition CodeView.h:328

@ BasedOnType

Definition CodeView.h:327

@ Far16

Definition CodeView.h:320

@ Far32

Definition CodeView.h:330

@ Near32

Definition CodeView.h:329

@ BasedOnSegmentValue

Definition CodeView.h:324

@ BasedOnValue

Definition CodeView.h:323

@ BasedOnSegment

Definition CodeView.h:322

@ BasedOnSegmentAddress

Definition CodeView.h:326

@ Huge16

Definition CodeView.h:321

@ Near64

Definition CodeView.h:331

@ Near16

Definition CodeView.h:319

CPUType

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

Definition CodeView.h:76

@ Pentium

Definition CodeView.h:82

@ M32R

Definition CodeView.h:129

@ MIPS

Definition CodeView.h:85

@ ARM64EC

Definition CodeView.h:137

@ MIPS32

Definition CodeView.h:87

@ SH4

Definition CodeView.h:113

@ Ia64

Definition CodeView.h:125

@ ARMNT

Definition CodeView.h:134

@ Ia64_2

Definition CodeView.h:126

@ ARM4T

Definition CodeView.h:117

@ AM33

Definition CodeView.h:128

@ Intel80486

Definition CodeView.h:81

@ M68000

Definition CodeView.h:94

@ ARM5

Definition CodeView.h:118

@ M68030

Definition CodeView.h:97

@ MIPSI

Definition CodeView.h:89

@ Alpha21164A

Definition CodeView.h:101

@ PPCBE

Definition CodeView.h:109

@ D3D11_Shader

Definition CodeView.h:140

@ EBC

Definition CodeView.h:132

@ M68020

Definition CodeView.h:96

@ Alpha

Definition CodeView.h:99

@ PPC601

Definition CodeView.h:104

@ Intel8086

Definition CodeView.h:78

@ MIPSV

Definition CodeView.h:93

@ ARM6

Definition CodeView.h:120

@ ARM_XMAC

Definition CodeView.h:121

@ Thumb

Definition CodeView.h:133

@ Unknown

Definition CodeView.h:139

@ MIPSIII

Definition CodeView.h:91

@ MIPS16

Definition CodeView.h:86

@ Intel8080

Definition CodeView.h:77

@ CEE

Definition CodeView.h:127

@ Intel80286

Definition CodeView.h:79

@ SHMedia

Definition CodeView.h:114

@ ARM4

Definition CodeView.h:116

@ TriCore

Definition CodeView.h:130

@ Omni

Definition CodeView.h:124

@ ARM3

Definition CodeView.h:115

@ M68010

Definition CodeView.h:95

@ ARM64

Definition CodeView.h:135

@ ARM_WMMX

Definition CodeView.h:122

@ MIPS64

Definition CodeView.h:88

@ Alpha21264

Definition CodeView.h:102

@ HybridX86ARM64

Definition CodeView.h:136

@ Alpha21364

Definition CodeView.h:103

@ SH3DSP

Definition CodeView.h:112

@ SH3

Definition CodeView.h:110

@ Alpha21164

Definition CodeView.h:100

@ PPC603

Definition CodeView.h:105

@ MIPSIV

Definition CodeView.h:92

@ PentiumPro

Definition CodeView.h:83

@ M68040

Definition CodeView.h:98

@ ARM5T

Definition CodeView.h:119

@ Pentium3

Definition CodeView.h:84

@ Intel80386

Definition CodeView.h:80

@ MIPSII

Definition CodeView.h:90

@ PPC620

Definition CodeView.h:107

@ X64

Definition CodeView.h:131

@ SH3E

Definition CodeView.h:111

@ PPCFP

Definition CodeView.h:108

@ PPC604

Definition CodeView.h:106

@ ARM64X

Definition CodeView.h:138

@ ARM7

Definition CodeView.h:123

CompileSym3Flags

Corresponds to COMPILESYM3::Flags bitfield.

Definition CodeView.h:445

@ PGO

Definition CodeView.h:458

@ Sdl

Definition CodeView.h:457

@ Exp

Definition CodeView.h:459

ClassOptions

Definition CodeView.h:185

@ Nested

Definition CodeView.h:190

@ HasUniqueName

Definition CodeView.h:196

@ Scoped

Definition CodeView.h:195

@ None

Definition CodeView.h:186

@ HasOverloadedOperator

Definition CodeView.h:189

@ HasConstructorOrDestructor

Definition CodeView.h:188

@ ForwardReference

Definition CodeView.h:194

@ ContainsNestedClass

Definition CodeView.h:191

@ Intrinsic

Definition CodeView.h:198

@ HasOverloadedAssignmentOperator

Definition CodeView.h:192

@ Sealed

Definition CodeView.h:197

@ Packed

Definition CodeView.h:187

@ HasConversionOperator

Definition CodeView.h:193

PointerToMemberRepresentation

Equivalent to CV_pmtype_e.

Definition CodeView.h:358

@ MultipleInheritanceData

Definition CodeView.h:361

@ SingleInheritanceData

Definition CodeView.h:360

@ GeneralFunction

Definition CodeView.h:367

@ SingleInheritanceFunction

Definition CodeView.h:364

@ VirtualInheritanceData

Definition CodeView.h:362

@ VirtualInheritanceFunction

Definition CodeView.h:366

@ MultipleInheritanceFunction

Definition CodeView.h:365

@ GeneralData

Definition CodeView.h:363

HfaKind

Definition CodeView.h:236

@ Float

Definition CodeView.h:238

@ Other

Definition CodeView.h:240

@ Double

Definition CodeView.h:239

CallingConvention

These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...

Definition CodeView.h:156

@ Inline

Definition CodeView.h:179

@ FarFast

Definition CodeView.h:162

@ NearPascal

Definition CodeView.h:159

@ NearFast

Definition CodeView.h:161

@ AM33Call

Definition CodeView.h:174

@ PpcCall

Definition CodeView.h:171

@ ArmCall

Definition CodeView.h:173

@ NearVector

Definition CodeView.h:181

@ M32RCall

Definition CodeView.h:177

@ TriCall

Definition CodeView.h:175

@ FarStdCall

Definition CodeView.h:164

@ SH5Call

Definition CodeView.h:176

@ MipsCall

Definition CodeView.h:168

@ Generic

Definition CodeView.h:169

@ FarSysCall

Definition CodeView.h:166

@ NearStdCall

Definition CodeView.h:163

@ Swift

Definition CodeView.h:182

@ NearSysCall

Definition CodeView.h:165

@ AlphaCall

Definition CodeView.h:170

@ ClrCall

Definition CodeView.h:178

@ ThisCall

Definition CodeView.h:167

@ FarPascal

Definition CodeView.h:160

@ SHCall

Definition CodeView.h:172

@ FarC

Definition CodeView.h:158

@ NearC

Definition CodeView.h:157

SymbolRecordKind

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

Definition CodeView.h:41

uint32_t alignOf(CodeViewContainer Container)

Definition CodeView.h:594

MethodOptions

Equivalent to CV_fldattr_t bitfield.

Definition CodeView.h:263

@ NoInherit

Definition CodeView.h:268

@ MethodKindMask

Definition CodeView.h:266

@ Pseudo

Definition CodeView.h:267

@ CompilerGenerated

Definition CodeView.h:270

@ AccessMask

Definition CodeView.h:265

@ NoConstruct

Definition CodeView.h:269

JumpTableEntrySize

Definition CodeView.h:609

@ UInt8ShiftLeft

Definition CodeView.h:617

@ Int16

Definition CodeView.h:612

@ Int8

Definition CodeView.h:610

@ Int16ShiftLeft

Definition CodeView.h:620

@ UInt16

Definition CodeView.h:613

@ UInt16ShiftLeft

Definition CodeView.h:618

@ UInt8

Definition CodeView.h:611

@ Int8ShiftLeft

Definition CodeView.h:619

@ Int32

Definition CodeView.h:614

@ UInt32

Definition CodeView.h:615

VFTableSlotKind

Definition CodeView.h:370

@ This

Definition CodeView.h:373

@ Meta

Definition CodeView.h:375

@ Outer

Definition CodeView.h:374

FunctionOptions

Definition CodeView.h:228

@ CxxReturnUdt

Definition CodeView.h:230

@ Constructor

Definition CodeView.h:231

@ ConstructorWithVirtualBases

Definition CodeView.h:232

MemberAccess

Source-level access specifier. (CV_access_e)

Definition CodeView.h:244

@ Public

Definition CodeView.h:248

@ Private

Definition CodeView.h:246

@ Protected

Definition CodeView.h:247

WindowsRTClassKind

Definition CodeView.h:380

@ Interface

Definition CodeView.h:384

@ RefClass

Definition CodeView.h:382

@ ValueClass

Definition CodeView.h:383

TypeLeafKind

Duplicate copy of the above enum, but using the official CV names.

Definition CodeView.h:34

ThunkOrdinal

These values correspond to the THUNK_ORDINAL enumeration.

Definition CodeView.h:536

@ Pcode

Definition CodeView.h:540

@ BranchIsland

Definition CodeView.h:543

@ Vcall

Definition CodeView.h:539

@ UnknownLoad

Definition CodeView.h:541

@ ThisAdjustor

Definition CodeView.h:538

@ TrampIncremental

Definition CodeView.h:542

@ Standard

Definition CodeView.h:537

EncodedFramePtrReg

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

Definition CodeView.h:523

@ FramePtr

Definition CodeView.h:526

@ BasePtr

Definition CodeView.h:527

@ StackPtr

Definition CodeView.h:525

LLVM_ABI RegisterId decodeFramePtrReg(EncodedFramePtrReg EncodedReg, CPUType CPU)

TrampolineType

Definition CodeView.h:546

TypeRecordKind

Distinguishes individual records in .debug$T or .debug$P section or PDB type stream.

Definition CodeView.h:27

SymbolKind

Duplicate copy of the above enum, but using the official CV names.

Definition CodeView.h:48

FileChecksumKind

Definition CodeView.h:549

@ MD5

Definition CodeView.h:549

@ SHA1

Definition CodeView.h:549

@ SHA256

Definition CodeView.h:549

ModifierOptions

Equivalent to CV_modifier_t.

Definition CodeView.h:283

@ Volatile

Definition CodeView.h:286

@ Const

Definition CodeView.h:285

@ Unaligned

Definition CodeView.h:287

FrameProcedureOptions

Definition CodeView.h:202

@ HasInlineAssembly

Definition CodeView.h:207

@ SecurityChecks

Definition CodeView.h:212

@ OptimizedForSpeed

Definition CodeView.h:222

@ GuardCfg

Definition CodeView.h:223

@ HasExceptionHandling

Definition CodeView.h:208

@ HasSetJmp

Definition CodeView.h:205

@ ProfileGuidedOptimization

Definition CodeView.h:220

@ NoStackOrderingForSecurityChecks

Definition CodeView.h:214

@ EncodedLocalBasePointerMask

Definition CodeView.h:218

@ GuardCfw

Definition CodeView.h:224

@ AsynchronousExceptionHandling

Definition CodeView.h:213

@ HasAlloca

Definition CodeView.h:204

@ HasStructuredExceptionHandling

Definition CodeView.h:210

@ MarkedInline

Definition CodeView.h:209

@ ValidProfileCounts

Definition CodeView.h:221

@ EncodedParamBasePointerMask

Definition CodeView.h:219

@ SafeBuffers

Definition CodeView.h:217

@ HasLongJmp

Definition CodeView.h:206

@ StrictSecurityChecks

Definition CodeView.h:216

@ Naked

Definition CodeView.h:211

@ Inlined

Definition CodeView.h:215

FrameCookieKind

Definition CodeView.h:493

@ XorFramePointer

Definition CodeView.h:496

@ Copy

Definition CodeView.h:494

@ XorR13

Definition CodeView.h:497

@ XorStackPointer

Definition CodeView.h:495

ExportFlags

Definition CodeView.h:463

@ HasNoName

Definition CodeView.h:468

@ IsData

Definition CodeView.h:466

@ HasExplicitOrdinal

Definition CodeView.h:469

@ IsPrivate

Definition CodeView.h:467

@ IsForwarder

Definition CodeView.h:470

@ IsConstant

Definition CodeView.h:465

PublicSymFlags

Corresponds to the CV_PUBSYMFLAGS bitfield.

Definition CodeView.h:405

@ MSIL

Definition CodeView.h:410

@ Managed

Definition CodeView.h:409

@ Function

Definition CodeView.h:408

@ Code

Definition CodeView.h:407

LabelType

Equivalent to CV_LABEL_TYPE_e.

Definition CodeView.h:276

@ Near

Definition CodeView.h:277

@ Far

Definition CodeView.h:278

LLVM_ABI EncodedFramePtrReg encodeFramePtrReg(RegisterId Reg, CPUType CPU)

SourceLanguage

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

Definition CodeView.h:146

CodeViewContainer

Definition CodeView.h:592

@ ObjectFile

Definition CodeView.h:592

@ Pdb

Definition CodeView.h:592

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

This is an optimization pass for GlobalISel generic memory operations.

RegisterId Reg

Definition CodeView.h:518

CPUType Cpu

Definition CodeView.h:517

CPURegister(CPUType Cpu, codeview::RegisterId Reg)

Definition CodeView.h:513

Definition CodeView.h:581

support::ulittle32_t Local

Definition CodeView.h:582

support::ulittle32_t Global

Definition CodeView.h:583

Definition CodeView.h:586

support::ulittle32_t Count

Definition CodeView.h:588

support::ulittle32_t ModuleNameOffset

Definition CodeView.h:587

Data in the SUBSEC_FRAMEDATA subection.

Definition CodeView.h:557

support::ulittle16_t PrologSize

Definition CodeView.h:564

support::ulittle32_t ParamsSize

Definition CodeView.h:561

support::ulittle32_t FrameFunc

Definition CodeView.h:563

support::ulittle32_t RvaStart

Definition CodeView.h:558

support::ulittle32_t Flags

Definition CodeView.h:566

@ HasEH

Definition CodeView.h:569

@ IsFunctionStart

Definition CodeView.h:570

@ HasSEH

Definition CodeView.h:568

support::ulittle32_t LocalSize

Definition CodeView.h:560

support::ulittle32_t CodeSize

Definition CodeView.h:559

support::ulittle16_t SavedRegsSize

Definition CodeView.h:565

support::ulittle32_t MaxStackSize

Definition CodeView.h:562