| --- |
| TpiStream: |
| Records: |
| # int* [Index: 0x1000] |
| - Kind: LF_POINTER |
| Pointer: |
| ReferentType: 116 # int |
| Attrs: 32778 |
| # const int* [Index: 0x1001] |
| - Kind: LF_MODIFIER |
| Modifier: |
| ModifiedType: 0x1000 |
| Modifiers: [ Const ] |
| # char* [Index: 0x1002] |
| - Kind: LF_POINTER |
| Pointer: |
| ReferentType: 1136 # char* |
| Attrs: 32778 |
| # (int, char **) [Index: 0x1003] |
| - Kind: LF_ARGLIST |
| ArgList: |
| ArgIndicies: [ 116, 0x1002 ] |
| # (int, double) [Index: 0x1004] |
| - Kind: LF_ARGLIST |
| ArgList: |
| ArgIndicies: [ 116, 65 ] # (int, double) |
| # int main(int argc, char **argv) [Index: 0x1005] |
| - Kind: LF_PROCEDURE |
| Procedure: |
| ReturnType: 117 # int |
| CallConv: NearC # __cdecl |
| Options: [ None ] |
| ParameterCount: 2 |
| ArgumentList: 0x1003 # (int, char**) |
| # <label> [Index: 0x1006] |
| - Kind: LF_LABEL |
| Label: |
| Mode: Near |
| # <forward decl> |
| # class FooClass; [Index: 0x1007] |
| - Kind: LF_STRUCTURE |
| Class: |
| MemberCount: 0 |
| Options: [ None, ForwardReference ] |
| FieldList: 0 |
| Name: 'FooClass' |
| DerivationList: 0 |
| VTableShape: 0 |
| Size: 0 |
| # char* [Index: 0x1008] |
| - Kind: LF_POINTER |
| Pointer: |
| ReferentType: 0x1007 # FooClass |
| Attrs: 33802 # const |
| # int (FooClass::)(int, char **) [Index: 0x1009] |
| - Kind: LF_MFUNCTION |
| MemberFunction: |
| ReturnType: 116 # int |
| ClassType: 0x1007 # FooClass |
| ThisType: 0x1008 # const FooClass* |
| CallConv: ThisCall |
| Options: [ None ] |
| ParameterCount: 2 |
| ArgumentList: 0x1003 # (int, char**) |
| ThisPointerAdjustment: 0 |
| # int (FooClass::)(int, double) [Index: 0x100A] |
| - Kind: LF_MFUNCTION |
| MemberFunction: |
| ReturnType: 116 # int |
| ClassType: 0x1007 # FooClass |
| ThisType: 0x1008 # const FooClass* |
| CallConv: ThisCall |
| Options: [ None ] |
| ParameterCount: 2 |
| ArgumentList: 0x1004 # (int, double) |
| ThisPointerAdjustment: 0 |
| # <method overload list> |
| # int (FooClass::)(int, char **) |
| # int (FooClass::)(int, double) [Index: 0x100B] |
| - Kind: LF_METHODLIST |
| MethodOverloadList: |
| Methods: |
| - Type: 0x1009 # int (FooClass::)(int, char **) |
| Attrs: 3 # public |
| VFTableOffset: -1 |
| Name: '' |
| - Type: 0x100A # int (FooClass::)(int, double) |
| Attrs: 3 # public |
| VFTableOffset: -1 |
| Name: '' |
| # <Field List> |
| # A, B, C [Index: 0x100C] |
| - Kind: LF_FIELDLIST |
| FieldList: |
| - Kind: LF_ENUMERATE |
| Enumerator: |
| Attrs: 3 |
| Value: 0 |
| Name: A |
| - Kind: LF_ENUMERATE |
| Enumerator: |
| Attrs: 3 |
| Value: 1 |
| Name: B |
| - Kind: LF_ENUMERATE |
| Enumerator: |
| Attrs: 3 |
| Value: 2 |
| Name: C |
| # enum FooClass::Enum : uint32_t { |
| # A, B, C |
| # }; [Index: 0x100D] |
| - Kind: LF_ENUM |
| Enum: |
| NumEnumerators: 3 |
| Options: [ None, Nested ] |
| FieldList: 0x100C |
| Name: 'FooClass::Enum' |
| UnderlyingType: 117 |
| # <Field List> |
| # public: |
| # enum FooEnum : uint32_t { |
| # A, B, C |
| # }; |
| # FooEnum EnumMember; |
| # static int StaticInt; |
| # int FooClass::OverloadedMethod(int, char **); |
| # int FooClass::OverloadedMethod(int, double); |
| # int FooClass::RegularMethod(int, double); |
| # [Index: 0x100E] |
| - Kind: LF_FIELDLIST |
| FieldList: |
| # enum FooEnum : uint32_t { |
| # A, B, C |
| # }; |
| - Kind: LF_NESTTYPE |
| NestedType: |
| Type: 0x100D |
| Name: FooEnum |
| # FooEnum EnumMember; |
| - Kind: LF_MEMBER |
| DataMember: |
| Attrs: 3 # public |
| Type: 0x100D # void* |
| FieldOffset: 0 |
| Name: EnumMember |
| # static int StaticInt; |
| - Kind: LF_STMEMBER |
| StaticDataMember: |
| Attrs: 3 # public |
| Type: 116 # int |
| Name: StaticInt |
| # int FooClass::OverloadedMethod(int, char **); |
| # int FooClass::OverloadedMethod(int, double); |
| - Kind: LF_METHOD |
| OverloadedMethod: |
| NumOverloads: 2 |
| MethodList: 0x100B |
| Name: OverloadedMethod |
| # int FooClass::RegularMethod(int, double); |
| - Kind: LF_ONEMETHOD |
| OneMethod: |
| Type: 0x100A |
| Attrs: 3 # public |
| VFTableOffset: -1 |
| Name: RegularMethod |
| # class FooClass { |
| # public: |
| # enum FooEnum : uint32_t { |
| # A, B, C |
| # }; |
| # FooEnum EnumMember; |
| # static int StaticInt; |
| # int FooClass::OverloadedMethod(int, char **); |
| # int FooClass::OverloadedMethod(int, double); |
| # int FooClass::RegularMethod(int, double); |
| # }; [Index: 0x100F] |
| - Kind: LF_CLASS |
| Class: |
| MemberCount: 6 |
| Options: [ None ] |
| FieldList: 0x100E |
| Name: 'FooClass' |
| DerivationList: 0 |
| VTableShape: 0 |
| Size: 4 |
| # struct FooStructure; [Index: 0x1010] |
| - Kind: LF_STRUCTURE |
| Class: |
| MemberCount: 6 |
| Options: [ None ] |
| FieldList: 0x100E |
| Name: 'FooStructure' |
| DerivationList: 0 |
| VTableShape: 0 |
| Size: 4 |
| # interface FooInterface; [Index: 0x1011] |
| - Kind: LF_INTERFACE |
| Class: |
| MemberCount: 6 |
| Options: [ None ] |
| FieldList: 0x100E |
| Name: 'FooInterface' |
| DerivationList: 0 |
| VTableShape: 0 |
| Size: 4 |
| # <field list> |
| # : public FooClass [Index: 0x1012] |
| - Kind: LF_FIELDLIST |
| FieldList: |
| - Kind: LF_BCLASS |
| Attrs: 3 # public |
| Type: 0x100F # FooClass |
| Offset: 0 |
| # <field list> |
| # : public virtual FooClass [Index: 0x1013] |
| - Kind: LF_FIELDLIST |
| FieldList: |
| - Kind: LF_VBCLASS |
| Attrs: 3 # public |
| BaseType: 0x100F # FooClass |
| VBPtrType: 0x1001 # const int * |
| VBPtrOffset: 0 |
| VTableIndex: 1 |
| # class Inherit : public FooClass {}; [Index: 0x1014] |
| - Kind: LF_STRUCTURE |
| Class: |
| MemberCount: 1 |
| Options: [ None ] |
| FieldList: 0x100E |
| Name: 'Inherit' |
| DerivationList: 0x1012 |
| VTableShape: 0 |
| Size: 4 |
| # class VInherit : public virtual FooClass {}; [Index: 0x1015] |
| - Kind: LF_STRUCTURE |
| Class: |
| MemberCount: 1 |
| Options: [ None ] |
| FieldList: 0x100E |
| Name: 'Inherit' |
| DerivationList: 0x1012 |
| VTableShape: 0 |
| Size: 4 |
| |
| # // Member type records. These are generally not length prefixed, and appear |
| # // inside of a field list record. |
| # MEMBER_RECORD(LF_VFUNCTAB, 0x1409, VFPtr) |
| |
| # MEMBER_RECORD_ALIAS(LF_BINTERFACE, 0x151a, BaseInterface, BaseClass) |
| |
| # MEMBER_RECORD_ALIAS(LF_IVBCLASS, 0x1402, IndirectVirtualBaseClass, |
| # VirtualBaseClass) |
| |
| |
| # TYPE_RECORD(LF_ARRAY, 0x1503, Array) |
| # TYPE_RECORD(LF_UNION, 0x1506, Union) |
| # TYPE_RECORD(LF_TYPESERVER2, 0x1515, TypeServer2) |
| # TYPE_RECORD(LF_VFTABLE, 0x151d, VFTable) |
| # TYPE_RECORD(LF_VTSHAPE, 0x000a, VFTableShape) |
| |
| # TYPE_RECORD(LF_BITFIELD, 0x1205, BitField) |
| |
| |
| # // ID leaf records. Subsequent leaf types may be referenced from .debug$S. |
| # TYPE_RECORD(LF_FUNC_ID, 0x1601, FuncId) |
| # TYPE_RECORD(LF_MFUNC_ID, 0x1602, MemberFuncId) |
| # TYPE_RECORD(LF_BUILDINFO, 0x1603, BuildInfo) |
| # TYPE_RECORD(LF_SUBSTR_LIST, 0x1604, StringList) |
| # TYPE_RECORD(LF_STRING_ID, 0x1605, StringId) |
| # TYPE_RECORD(LF_UDT_SRC_LINE, 0x1606, UdtSourceLine) |
| # TYPE_RECORD(LF_UDT_MOD_SRC_LINE, 0x1607, UdtModSourceLine) |