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
159 NearPascal = 0x02,
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