You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.207
Former-commit-id: 3b152f462918d427ce18620a2cbe4f8b79650449
This commit is contained in:
parent
8e12397d70
commit
eb85e2fc17
@ -1 +0,0 @@
|
||||
config.unsupported = not config.have_dia_sdk
|
@ -1,40 +0,0 @@
|
||||
; RUN: llvm-pdbutil pretty %p/../Inputs/empty.pdb | FileCheck %s -check-prefix=NO_ARGS
|
||||
; RUN: llvm-pdbutil pretty -types %p/../Inputs/empty.pdb | FileCheck %s -check-prefix=TYPES
|
||||
; RUN: llvm-pdbutil pretty -compilands %p/../Inputs/empty.pdb | FileCheck %s -check-prefix=COMPILANDS
|
||||
; RUN: llvm-pdbutil pretty -types -compilands %p/../Inputs/empty.pdb | FileCheck %s -check-prefix=MULTIPLE
|
||||
|
||||
; Check that neither symbols nor compilands are dumped when neither argument specified.
|
||||
; NO_ARGS: empty.pdb
|
||||
; NO_ARGS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
|
||||
; NO_ARGS: Attributes: HasPrivateSymbols
|
||||
; NO_ARGS-NOT: ---TYPES---
|
||||
; NO_ARGS-NOT: ---COMPILANDS---
|
||||
; NO_ARGS-NOT: ---GLOBALS---
|
||||
; NO_ARGS-NOT: ---SYMBOLS---
|
||||
|
||||
; Check that only types are dumped when only -types is specified.
|
||||
; TYPES: empty.pdb
|
||||
; TYPES: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
|
||||
; TYPES: Attributes: HasPrivateSymbols
|
||||
; TYPES: ---TYPES---
|
||||
; TYPES-NOT: ---COMPILANDS---
|
||||
; TYPES-NOT: ---GLOBALS---
|
||||
; TYPES-NOT: ---SYMBOLS---
|
||||
|
||||
; Check that only compilands are dumped when only -compilands is specified.
|
||||
; COMPILANDS: empty.pdb
|
||||
; COMPILANDS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
|
||||
; COMPILANDS: Attributes: HasPrivateSymbols
|
||||
; COMPILANDS: ---COMPILANDS---
|
||||
; COMPILANDS-NOT: ---TYPES---
|
||||
; COMPILANDS-NOT: ---GLOBALS---
|
||||
; COMPILANDS-NOT: ---SYMBOLS---
|
||||
|
||||
; Check that types and compilands are dumped when both arguments are specified.
|
||||
; MULTIPLE: empty.pdb
|
||||
; MULTIPLE: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
|
||||
; MULTIPLE: Attributes: HasPrivateSymbols
|
||||
; MULTIPLE: ---COMPILANDS---
|
||||
; MULTIPLE: ---TYPES---
|
||||
; MULTIPLE-NOT: ---GLOBALS---
|
||||
; MULTIPLE-NOT: ---SYMBOLS---
|
@ -1,14 +0,0 @@
|
||||
; RUN: llvm-pdbutil pretty -lines %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=LINE_NUMS_FPO %s
|
||||
; RUN: llvm-pdbutil pretty -lines %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=LINE_NUMS %s
|
||||
|
||||
; LINE_NUMS_FPO: llvm\test\debuginfo\pdb\inputs\symbolformat-fpo.cpp
|
||||
; LINE_NUMS_FPO: Line 5, Address: [0x000011a0 - 0x000011a5] (6 bytes)
|
||||
; LINE_NUMS_FPO: Line 6, Address: [0x000011a6 - 0x000011a6] (1 bytes)
|
||||
|
||||
; LINE_NUMS: llvm\test\debuginfo\pdb\inputs\symbolformat.cpp
|
||||
; LINE_NUMS: Line 6, Address: [0x00001060 - 0x00001066] (7 bytes)
|
||||
; LINE_NUMS: Line 80, Address: [0x000010d0 - 0x000010d1] (2 bytes)
|
||||
; LINE_NUMS: Line 81, Address: [0x000010d2 - 0x000010d5] (4 bytes)
|
||||
; LINE_NUMS: Line 28, Address: [0x00001170 - 0x0000117a] (11 bytes)
|
||||
; LINE_NUMS: Line 21, Address: [0x00001180 - 0x0000118a] (11 bytes)
|
||||
; LINE_NUMS: Line 20, Address: [0x00001190 - 0x0000119a] (11 bytes)
|
@ -1,70 +0,0 @@
|
||||
; RUN: llvm-pdbutil pretty -module-syms %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=SYM_FORMAT_FPO %s
|
||||
; RUN: llvm-pdbutil pretty -module-syms %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=SYM_FORMAT %s
|
||||
; RUN: llvm-pdbutil pretty -types %p/../Inputs/symbolformat.pdb > %t.types
|
||||
; RUN: FileCheck --check-prefix=TYPES_FORMAT %s < %t.types
|
||||
; RUN: FileCheck --check-prefix=TYPES_1 %s < %t.types
|
||||
; RUN: FileCheck --check-prefix=TYPES_2 %s < %t.types
|
||||
; RUN: llvm-pdbutil pretty -types %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=TYPES_FORMAT %s
|
||||
; RUN: llvm-pdbutil pretty -globals %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=GLOBALS %s
|
||||
|
||||
; The format is func [0x<rva_start>+<prologue_length> - 0x<rva_end>-<epilogue_length>]
|
||||
; SYM_FORMAT_FPO: ---SYMBOLS---
|
||||
; SYM_FORMAT_FPO: symbolformat-fpo.obj
|
||||
; SYM_FORMAT-FPO: func [{{.*}}] (FPO) unsigned int __cdecl fpo_func(unsigned int n)
|
||||
|
||||
; SYM_FORMAT: ---SYMBOLS---
|
||||
; SYM_FORMAT: symbolformat.obj
|
||||
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) int __cdecl _purecall()
|
||||
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) int __cdecl main(int argc, char** argv)
|
||||
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void A::A()
|
||||
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void B::B()
|
||||
; SYM_FORMAT-DAG: thunk [{{.*}}] (Pcode) B::`vcall'{0}'
|
||||
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) virtual void B::PureFunc()
|
||||
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void A::RegularFunc()
|
||||
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) virtual void A::VirtualFunc()
|
||||
|
||||
; TYPES_FORMAT: ---TYPES---
|
||||
; TYPES_FORMAT: Enums
|
||||
; TYPES_FORMAT-DAG: enum TestEnum
|
||||
; TYPES_FORMAT-DAG: enum TestEnumClass
|
||||
; TYPES_FORMAT: Typedefs
|
||||
; TYPES_FORMAT-DAG: typedef int IntType
|
||||
; TYPES_FORMAT-DAG: typedef class A ClassAType
|
||||
|
||||
; TYPES_1: Classes
|
||||
; TYPES_1: struct A [sizeof = 4] {
|
||||
; TYPES_1: virtual void PureFunc() = 0
|
||||
; TYPES_1: virtual void VirtualFunc()
|
||||
; TYPES_1: void RegularFunc()
|
||||
; TYPES_1: }
|
||||
|
||||
; TYPES_2: Classes
|
||||
; TYPES_2: struct MemberTest [sizeof = 96] {
|
||||
; TYPES_2: data +0x00 [sizeof=4] MemberTest::NestedEnum m_nested_enum
|
||||
; TYPES_2: data +0x04 [sizeof=4] int m_typedef
|
||||
; TYPES_2: data +0x08 [sizeof=1] bool m_bool
|
||||
; TYPES_2: data +0x09 [sizeof=1] char m_char
|
||||
; TYPES_2: data +0x0a [sizeof=2] wchar_t m_wchar_t
|
||||
; TYPES_2: data +0x0c [sizeof=4] int m_int
|
||||
; TYPES_2: data +0x10 [sizeof=4] unsigned int m_unsigned
|
||||
; TYPES_2: data +0x14 [sizeof=4] long m_long
|
||||
; TYPES_2: data +0x18 [sizeof=4] unsigned long m_unsigned_long
|
||||
; TYPES_2: <padding> (4 bytes)
|
||||
; TYPES_2: data +0x20 [sizeof=8] __int64 m_int64
|
||||
; TYPES_2: data +0x28 [sizeof=8] unsigned __int64 m_unsigned_int64
|
||||
; TYPES_2: data +0x30 [sizeof=4] float m_float
|
||||
; TYPES_2: <padding> (4 bytes)
|
||||
; TYPES_2: data +0x38 [sizeof=8] double m_double
|
||||
; TYPES_2: data +0x40 [sizeof=4] void (__cdecl * m_pfn_2_args)(int, double)
|
||||
; TYPES_2: data +0x44 [sizeof=24] int m_multidimensional_array[2][3]
|
||||
; TYPES_2: }
|
||||
|
||||
; GLOBALS: ---GLOBALS---
|
||||
; GLOBALS-DAG: func [{{.*}}] (FPO) unsigned int __cdecl fpo_func(unsigned int n)
|
||||
; GLOBALS-DAG: data [{{.*}}, sizeof=4] static void* g_global_pointer
|
||||
; GLOBALS-DAG: data [{{.*}}, sizeof=4] static int g_global_int
|
||||
; GLOBALS-DAG: data [{{.*}}, sizeof=12] static int g_array[3]
|
||||
; GLOBALS-DAG: data [{{.*}}, sizeof=4] static int (* g_pointer_to_array)[3]
|
||||
; GLOBALS-DAG: data [{{.*}}, sizeof=4] static const int* g_pointer_to_const_int
|
||||
; GLOBALS-DAG: data [sizeof=4] int* const g_const_pointer_to_int = 0
|
||||
; GLOBALS-DAG: data [sizeof=4] const int* const g_const_pointer_to_const_int = 0
|
@ -1,2 +0,0 @@
|
||||
Microsoft C/C++ MSF 7.00
|
||||
DS
|
@ -1 +0,0 @@
|
||||
9d9086874e5f94e9b0202df916e044a1665c0a0a
|
@ -1,91 +0,0 @@
|
||||
DbiStream:
|
||||
Modules:
|
||||
- Module: 'Foo.obj'
|
||||
ObjFile: 'Foo.obj'
|
||||
Subsections:
|
||||
- !CrossModuleExports
|
||||
Exports:
|
||||
- LocalId: 4852
|
||||
GlobalId: 9283
|
||||
- LocalId: 2147487875
|
||||
GlobalId: 9123
|
||||
- Module: 'Bar.obj'
|
||||
ObjFile: 'Bar.obj'
|
||||
Subsections:
|
||||
- !CrossModuleExports
|
||||
Exports:
|
||||
- LocalId: 4265
|
||||
GlobalId: 6097
|
||||
- LocalId: 4297
|
||||
GlobalId: 4677
|
||||
- !CrossModuleImports
|
||||
Imports:
|
||||
- Module: 'Foo.obj'
|
||||
Imports: [ 4852, 2147487875 ]
|
||||
- Module: 'd:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj'
|
||||
ObjFile: 'd:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj'
|
||||
SourceFiles:
|
||||
- 'd:\src\llvm\test\debuginfo\pdb\inputs\empty.cpp'
|
||||
Subsections:
|
||||
- !FileChecksums
|
||||
Checksums:
|
||||
- FileName: 'd:\src\llvm\test\debuginfo\pdb\inputs\empty.cpp'
|
||||
Kind: MD5
|
||||
Checksum: A0A5BD0D3ECD93FC29D19DE826FBF4BC
|
||||
- FileName: 'f:\dd\externalapis\windows\10\sdk\inc\winerror.h'
|
||||
Kind: MD5
|
||||
Checksum: 1154D69F5B2650196E1FC34F4134E56B
|
||||
- !Lines
|
||||
CodeSize: 10
|
||||
Flags: [ ]
|
||||
RelocOffset: 100016
|
||||
RelocSegment: 1
|
||||
Blocks:
|
||||
- FileName: 'd:\src\llvm\test\debuginfo\pdb\inputs\empty.cpp'
|
||||
Lines:
|
||||
- Offset: 0
|
||||
LineStart: 5
|
||||
IsStatement: true
|
||||
EndDelta: 0
|
||||
- Offset: 3
|
||||
LineStart: 6
|
||||
IsStatement: true
|
||||
EndDelta: 0
|
||||
- Offset: 8
|
||||
LineStart: 7
|
||||
IsStatement: true
|
||||
EndDelta: 0
|
||||
Columns:
|
||||
- !InlineeLines
|
||||
HasExtraFiles: false
|
||||
Sites:
|
||||
- FileName: 'f:\dd\externalapis\windows\10\sdk\inc\winerror.h'
|
||||
LineNum: 26950
|
||||
Inlinee: 22767
|
||||
# The following subsections don't normally appear in PDB files, but we test
|
||||
# them anyway
|
||||
- Module: 'ObjFileSubsections'
|
||||
ObjFile: 'ObjFileSubsections'
|
||||
Subsections:
|
||||
- !StringTable
|
||||
Strings:
|
||||
- 'String1'
|
||||
- 'String2'
|
||||
- 'String3'
|
||||
- !Symbols
|
||||
Records:
|
||||
- Kind: S_OBJNAME
|
||||
ObjNameSym:
|
||||
Signature: 0
|
||||
ObjectName: 'ObjFileSubsections'
|
||||
- !FrameData
|
||||
Frames:
|
||||
- CodeSize: 1
|
||||
FrameFunc: 'MyFunc'
|
||||
LocalSize: 2
|
||||
MaxStackSize: 3
|
||||
ParamsSize: 4
|
||||
PrologSize: 5
|
||||
RvaStart: 6
|
||||
SavedRegsSize: 7
|
||||
...
|
@ -1,7 +0,0 @@
|
||||
// Build with "cl.exe /Zi empty.cpp /link /debug /nodefaultlib /entry:main"
|
||||
|
||||
void *__purecall = 0;
|
||||
|
||||
int main() {
|
||||
return 42;
|
||||
}
|
BIN
external/llvm/test/DebugInfo/PDB/Inputs/empty.pdb
vendored
BIN
external/llvm/test/DebugInfo/PDB/Inputs/empty.pdb
vendored
Binary file not shown.
@ -1,63 +0,0 @@
|
||||
// Build with "cl.exe /Zi /GR- /GX- every-type.cpp /link /debug /nodefaultlib /entry:main"
|
||||
|
||||
// clang-format off
|
||||
void *__purecall = 0;
|
||||
|
||||
void __cdecl operator delete(void *,unsigned int) {}
|
||||
|
||||
struct FooStruct { }; // LF_STRUCTURE
|
||||
|
||||
class FooClass { // LF_CLASS
|
||||
// LF_FIELDLIST
|
||||
enum NestedEnum { // LF_ENUM
|
||||
// LF_NESTTYPE
|
||||
A, B, C // LF_ENUMERATE
|
||||
};
|
||||
|
||||
void RegularMethod() {} // LF_ARGLIST
|
||||
// LF_ONEMETHOD
|
||||
// LF_MFUNCTION
|
||||
|
||||
void OverloadedMethod(int) {} // LF_METHODLIST
|
||||
// LF_METHOD
|
||||
void OverloadedMethod(int, int) {}
|
||||
|
||||
int HiNibble : 4; // LF_BITFIELD
|
||||
int LoNibble : 4;
|
||||
NestedEnum EnumVariable; // LF_MEMBER
|
||||
static void *StaticMember; // LF_POINTER
|
||||
// LF_STMEMBER
|
||||
};
|
||||
|
||||
void *FooClass::StaticMember = nullptr;
|
||||
|
||||
class Inherit : public FooClass { // LF_BCLASS
|
||||
public:
|
||||
virtual ~Inherit() {} // LF_VTSHAPE
|
||||
// LF_VFUNCTAB
|
||||
};
|
||||
|
||||
class VInherit : public virtual FooClass { // LF_VBCLASS
|
||||
|
||||
};
|
||||
|
||||
class IVInherit : public VInherit { // LF_IVBCLASS
|
||||
};
|
||||
|
||||
union TheUnion {
|
||||
int X; // LF_UNION
|
||||
};
|
||||
|
||||
int SomeArray[7] = {1, 2, 3, 4, 5, 6, 7}; // LF_ARRAY
|
||||
|
||||
int main(int argc, char **argv) { // LF_PROCEDURE
|
||||
const int X = 7; // LF_MODIFIER
|
||||
|
||||
FooStruct FooStructInstance;
|
||||
FooClass FooClassInstance;
|
||||
Inherit InheritInstance;
|
||||
VInherit VInheritInstance;
|
||||
IVInherit IVInheritInstance;
|
||||
TheUnion UnionInstance;
|
||||
return SomeArray[argc];
|
||||
}
|
Binary file not shown.
@ -1,272 +0,0 @@
|
||||
---
|
||||
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)
|
@ -1 +0,0 @@
|
||||
3d6639edc581d6fe531b6866a7b1c7f0f5922fba
|
@ -1,36 +0,0 @@
|
||||
IpiStream:
|
||||
Records:
|
||||
# 'One' [TypeIndex: 0x1000 (4096)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'One'
|
||||
# 'Two' [TypeIndex: 0x1001 (4097)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'Two'
|
||||
# 'OnlyInFirst' [TypeIndex: 0x1002 (4098)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'OnlyInFirst'
|
||||
# 'SubOne' [TypeIndex: 0x1003 (4099)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'SubOne'
|
||||
# 'SubTwo' [TypeIndex: 0x1004 (4100)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'SubTwo'
|
||||
# 'SubOne', 'SubTwo' [TypeIndex: 0x1005 (4101)]
|
||||
- Kind: LF_SUBSTR_LIST
|
||||
StringList:
|
||||
StringIndices: [ 4099, 4100 ]
|
||||
# 'Main' {'SubOne', 'SubTwo'} [TypeIndex: 0x1006 (4102)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 4101
|
||||
String: 'Main'
|
@ -1,31 +0,0 @@
|
||||
IpiStream:
|
||||
Records:
|
||||
# 'SubTwo' [TypeIndex: 0x1000 (4096)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'SubTwo'
|
||||
# 'OnlyInSecond' [TypeIndex: 0x1001 (4097)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'OnlyInSecond'
|
||||
# 'SubOne' [TypeIndex: 0x1002 (4098)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'SubOne'
|
||||
# 'SubOne', 'SubTwo' [TypeIndex: 0x1003 (4099)]
|
||||
- Kind: LF_SUBSTR_LIST
|
||||
StringList:
|
||||
StringIndices: [ 4098, 4096 ]
|
||||
# 'One' [TypeIndex: 0x1004 (4100)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'One'
|
||||
# 'Main' {'SubOne', 'SubTwo'} [TypeIndex: 0x1005 (4101)]
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 4099
|
||||
String: 'Main'
|
@ -1,113 +0,0 @@
|
||||
# The idea is to set up some types in the TPI stream, and then have records in
|
||||
# the IPI stream that refer to them. There are three types of IPI records that
|
||||
# can refer to TPI records. They are:
|
||||
# 1) LF_PROCEDURE - Referred to by LF_FUNC_ID
|
||||
# 2) LF_STRUCTURE - Referred to by LF_UDT_MOD_SRC_LINE
|
||||
# Referred to by LF_UDT_SRC_LINE
|
||||
# 3) LF_MFUNCTION - Referred to by LF_MFUNC_ID
|
||||
# We will set up one of each of these, and then create IPI records that refer to
|
||||
# them. We intentionally choose an unintuitive ordering of the records in both
|
||||
# streams (while still maintaining the topological sorting required by CodeView
|
||||
# type streams), to make sure the merging algorithm is sufficiently exercised.
|
||||
# For easy understanding, a semantic representation of the types we will set up
|
||||
# is as follows:
|
||||
# - int main(int, char**)
|
||||
#
|
||||
# - struct FooBar {
|
||||
# public:
|
||||
# void *FooMember;
|
||||
# void FooMethod(int);
|
||||
# };
|
||||
TpiStream:
|
||||
Records:
|
||||
# TypeIndex: 4096 (0x1000)
|
||||
# char**
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 1136
|
||||
Attrs: 32778
|
||||
# TypeIndex: 4097 (0x1001)
|
||||
# public void *FooMember
|
||||
- Kind: LF_FIELDLIST
|
||||
FieldList:
|
||||
- Kind: LF_MEMBER
|
||||
DataMember:
|
||||
Attrs: 3 # public
|
||||
Type: 1027 # void*
|
||||
FieldOffset: 0
|
||||
Name: FooMember # FooMember
|
||||
# TypeIndex: 4098 (0x1002)
|
||||
# (int, char**)
|
||||
- Kind: LF_ARGLIST
|
||||
ArgList:
|
||||
ArgIndices: [ 116, 4096 ]
|
||||
# TypeIndex: 4099 (0x1003)
|
||||
# struct FooBar {
|
||||
# public:
|
||||
# void *FooMember;
|
||||
# };
|
||||
- Kind: LF_STRUCTURE
|
||||
Class:
|
||||
MemberCount: 1
|
||||
Options: [ None, HasUniqueName ]
|
||||
FieldList: 4097
|
||||
Name: FooBar
|
||||
UniqueName: 'FooBar'
|
||||
DerivationList: 0
|
||||
VTableShape: 0
|
||||
Size: 4
|
||||
# TypeIndex: 4100 (0x1004)
|
||||
# FooBar *
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 4099 # FooBar
|
||||
Attrs: 32778
|
||||
# TypeIndex: 4101 (0x1005)
|
||||
# (int)
|
||||
- Kind: LF_ARGLIST
|
||||
ArgList:
|
||||
ArgIndices: [ 116 ]
|
||||
# TypeIndex: 4102 (0x1006)
|
||||
- Kind: LF_MFUNCTION
|
||||
MemberFunction:
|
||||
ReturnType: 3 # void
|
||||
ClassType: 4099 # struct FooBar
|
||||
ThisType: 4100 # FooBar *
|
||||
CallConv: ThisCall
|
||||
Options: [ None, Constructor ]
|
||||
ParameterCount: 1
|
||||
ArgumentList: 4101 # (int)
|
||||
ThisPointerAdjustment: 0
|
||||
# TypeIndex: 4103 (0x1007)
|
||||
# int (int, char**)
|
||||
- Kind: LF_PROCEDURE
|
||||
Procedure:
|
||||
ReturnType: 116 # int
|
||||
CallConv: NearC
|
||||
Options: [ None ]
|
||||
ParameterCount: 2
|
||||
ArgumentList: 4098 # (int, char**)
|
||||
IpiStream:
|
||||
Records:
|
||||
# TypeIndex: 4096 (0x1000)
|
||||
# int main(int, char **)
|
||||
- Kind: LF_FUNC_ID
|
||||
FuncId:
|
||||
ParentScope: 0
|
||||
FunctionType: 4103 # int main(int, char**)
|
||||
Name: main
|
||||
# TypeIndex: 4097 (0x1001)
|
||||
# void FooBar::FooMethod(int)
|
||||
- Kind: LF_MFUNC_ID
|
||||
MemberFuncId:
|
||||
ClassType: 4099 # struct FooBar
|
||||
FunctionType: 4102 # void FooMethod(int)
|
||||
Name: FooMethod
|
||||
# TypeIndex: 4098 (0x1002)
|
||||
# struct FooBar
|
||||
- Kind: LF_UDT_MOD_SRC_LINE
|
||||
UdtModSourceLine:
|
||||
UDT: 4099 # struct FooBar
|
||||
SourceFile: 0 # We don't support this yet
|
||||
LineNumber: 0
|
||||
Module: 0 # We don't support this yet
|
@ -1,143 +0,0 @@
|
||||
# In file 1 we set up some basic types and IDs to refer to them. In this file
|
||||
# we will set up the same types. For some of them we will make them identical
|
||||
# but re-order the records in the file to make sure they have different type
|
||||
# indices and appear in different orders. In other cases we will make slight
|
||||
# adjustments to the types, to ensure that they do not get merged in.
|
||||
#
|
||||
# For easy understanding, a semantic representation of the types we will set up
|
||||
# is as follows:
|
||||
# - int main(int, char**) // This record should share an LF_PROCEDURE and id
|
||||
# // record with corresponding function from the
|
||||
# // first file.
|
||||
# - int main2(int, char**) // This record should share the LF_PROCEDURE
|
||||
# // record but have a unique id record.
|
||||
# - void foo(int, char**) // This record should have a unique LF_PROCEDURE
|
||||
# // record, but the LF_ARGLIST record internally
|
||||
# // should be shared.
|
||||
#
|
||||
# - struct FooBar { // Because the type of this record exactly matches
|
||||
# // the corresponding file, its entire type record
|
||||
# // hierarchy should be shared.
|
||||
# public:
|
||||
# void *FooMember;
|
||||
# void FooMethod2(int); // Note that the *type* of this member should be
|
||||
# // the same as the type of the record from the
|
||||
# // first stream. But since it has a different
|
||||
# // name, it will not share an id record.
|
||||
# };
|
||||
TpiStream:
|
||||
Records:
|
||||
# TypeIndex: 4096 (0x1000)
|
||||
# (int)
|
||||
- Kind: LF_ARGLIST
|
||||
ArgList:
|
||||
ArgIndices: [ 116 ]
|
||||
# TypeIndex: 4097 (0x1001)
|
||||
# public void *FooMember
|
||||
- Kind: LF_FIELDLIST
|
||||
FieldList:
|
||||
- Kind: LF_MEMBER
|
||||
DataMember:
|
||||
Attrs: 3 # public
|
||||
Type: 1027 # void*
|
||||
FieldOffset: 0
|
||||
Name: FooMember # FooMember
|
||||
# TypeIndex: 4098 (0x1002)
|
||||
# char**
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 1136
|
||||
Attrs: 32778
|
||||
# TypeIndex: 4099 (0x1003)
|
||||
# (int, char**)
|
||||
- Kind: LF_ARGLIST
|
||||
ArgList:
|
||||
ArgIndices: [ 116, 4098 ]
|
||||
# TypeIndex: 4100 (0x1004)
|
||||
# struct FooBar {
|
||||
# public:
|
||||
# void *FooMember;
|
||||
# };
|
||||
- Kind: LF_STRUCTURE
|
||||
Class:
|
||||
MemberCount: 1
|
||||
Options: [ None, HasUniqueName ]
|
||||
FieldList: 4097
|
||||
Name: FooBar
|
||||
UniqueName: 'FooBar'
|
||||
DerivationList: 0
|
||||
VTableShape: 0
|
||||
Size: 4
|
||||
# TypeIndex: 4101 (0x1005)
|
||||
# void (int, char**)
|
||||
- Kind: LF_PROCEDURE
|
||||
Procedure:
|
||||
ReturnType: 3 # void
|
||||
CallConv: NearC
|
||||
Options: [ None ]
|
||||
ParameterCount: 2
|
||||
ArgumentList: 4099 # (int, char**)
|
||||
# TypeIndex: 4102 (0x1006)
|
||||
# FooBar *
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 4100 # FooBar
|
||||
Attrs: 32778
|
||||
# TypeIndex: 4103 (0x1007)
|
||||
# int (int, char**)
|
||||
- Kind: LF_PROCEDURE
|
||||
Procedure:
|
||||
ReturnType: 116 # int
|
||||
CallConv: NearC
|
||||
Options: [ None ]
|
||||
ParameterCount: 2
|
||||
ArgumentList: 4099 # (int, char**)
|
||||
# TypeIndex: 4104 (0x1008)
|
||||
- Kind: LF_MFUNCTION
|
||||
MemberFunction:
|
||||
ReturnType: 3 # void
|
||||
ClassType: 4100 # struct FooBar
|
||||
ThisType: 4102 # FooBar *
|
||||
CallConv: ThisCall
|
||||
Options: [ None, Constructor ]
|
||||
ParameterCount: 1
|
||||
ArgumentList: 4096 # (int)
|
||||
ThisPointerAdjustment: 0
|
||||
IpiStream:
|
||||
Records:
|
||||
# TypeIndex: 4096 (0x1000)
|
||||
# struct FooBar
|
||||
- Kind: LF_UDT_MOD_SRC_LINE
|
||||
UdtModSourceLine:
|
||||
UDT: 4100 # struct FooBar
|
||||
SourceFile: 0 # We don't support this yet
|
||||
LineNumber: 0
|
||||
Module: 0 # We don't support this yet
|
||||
# TypeIndex: 4097 (0x1001)
|
||||
# int main2(int, char **)
|
||||
- Kind: LF_FUNC_ID
|
||||
FuncId:
|
||||
ParentScope: 0
|
||||
FunctionType: 4103 # int main2(int, char**)
|
||||
Name: main2
|
||||
# TypeIndex: 4098 (0x1002)
|
||||
# void foo(int, char **)
|
||||
- Kind: LF_FUNC_ID
|
||||
FuncId:
|
||||
ParentScope: 0
|
||||
FunctionType: 4101 # void main2(int, char**)
|
||||
Name: foo
|
||||
# TypeIndex: 4099 (0x1003)
|
||||
# void FooBar::FooMethod2(int)
|
||||
- Kind: LF_MFUNC_ID
|
||||
MemberFuncId:
|
||||
ClassType: 4100 # struct FooBar
|
||||
FunctionType: 4104 # void FooBar::FooMethod2(int)
|
||||
Name: FooMethod2
|
||||
# TypeIndex: 4100 (0x1004)
|
||||
# int main(int, char **)
|
||||
- Kind: LF_FUNC_ID
|
||||
FuncId:
|
||||
ParentScope: 0
|
||||
FunctionType: 4103 # int main(int, char**)
|
||||
Name: main
|
@ -1,52 +0,0 @@
|
||||
---
|
||||
TpiStream:
|
||||
Records:
|
||||
# uint32_t* [Index: 0x1000]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 117
|
||||
Attrs: 32778
|
||||
# int64_t* [Index: 0x1001]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 118
|
||||
Attrs: 32778
|
||||
# struct OnlyInMerge1 [Index: 0x1002]
|
||||
- Kind: LF_STRUCTURE
|
||||
Class:
|
||||
MemberCount: 0
|
||||
Options: [ None, ForwardReference, HasUniqueName ]
|
||||
FieldList: 0
|
||||
Name: 'OnlyInMerge1'
|
||||
UniqueName: 'OnlyInMerge1'
|
||||
DerivationList: 0
|
||||
VTableShape: 0
|
||||
Size: 0
|
||||
# uint32_t** [Index: 0x1003]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 4096
|
||||
Attrs: 32778
|
||||
# uint32_t*** [Index: 0x1004]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 4099
|
||||
Attrs: 32778
|
||||
# int64_t* [Index: 0x1005]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 4097
|
||||
Attrs: 32778
|
||||
# [uint32_t, uint32_t*, uint32_t**] [Index: 0x1006]
|
||||
- Kind: LF_ARGLIST
|
||||
ArgList:
|
||||
ArgIndices: [ 117, 4096, 4099 ]
|
||||
# uint32_t (uint32_t, uint32_t*, uint32_t**) [Index: 0x1007]
|
||||
- Kind: LF_PROCEDURE
|
||||
Procedure:
|
||||
ReturnType: 117
|
||||
CallConv: NearC
|
||||
Options: [ None ]
|
||||
ParameterCount: 0
|
||||
ArgumentList: 4102
|
||||
...
|
@ -1,52 +0,0 @@
|
||||
---
|
||||
TpiStream:
|
||||
Records:
|
||||
# uint32_t* [Index: 0x1000]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 117
|
||||
Attrs: 32778
|
||||
# uint32_t** [Index: 0x1001]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 4096
|
||||
Attrs: 32778
|
||||
# uint32_t*** [Index: 0x1002]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 4097
|
||||
Attrs: 32778
|
||||
# [uint32_t, uint32_t*, uint32_t**] [Index: 0x1003]
|
||||
- Kind: LF_ARGLIST
|
||||
ArgList:
|
||||
ArgIndices: [ 117, 4096, 4097 ]
|
||||
# uint32_t (uint32_t, uint32_t*, uint32_t**) [Index: 0x1004]
|
||||
- Kind: LF_PROCEDURE
|
||||
Procedure:
|
||||
ReturnType: 117
|
||||
CallConv: NearC
|
||||
Options: [ None ]
|
||||
ParameterCount: 0
|
||||
ArgumentList: 4099
|
||||
# int64_t* [Index: 0x1005]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 118
|
||||
Attrs: 32778
|
||||
# int64_t** [Index: 0x1006]
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 4101
|
||||
Attrs: 32778
|
||||
# struct OnlyInMerge2 [Index: 0x1007]
|
||||
- Kind: LF_STRUCTURE
|
||||
Class:
|
||||
MemberCount: 0
|
||||
Options: [ None, ForwardReference, HasUniqueName ]
|
||||
FieldList: 0
|
||||
Name: 'OnlyInMerge2'
|
||||
UniqueName: 'OnlyInMerge2'
|
||||
DerivationList: 0
|
||||
VTableShape: 0
|
||||
Size: 0
|
||||
...
|
@ -1,50 +0,0 @@
|
||||
--- !COFF
|
||||
header:
|
||||
Machine: IMAGE_FILE_MACHINE_I386
|
||||
Characteristics: [ ]
|
||||
sections:
|
||||
- Name: '.debug$T'
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 4
|
||||
Types:
|
||||
# char**
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 272
|
||||
Attrs: 32778
|
||||
# int**
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 372
|
||||
Attrs: 32778
|
||||
# int***
|
||||
- Kind: LF_POINTER
|
||||
Pointer:
|
||||
ReferentType: 4097
|
||||
Attrs: 32778
|
||||
# (char**, int***)
|
||||
- Kind: LF_ARGLIST
|
||||
ArgList:
|
||||
ArgIndices: [ 4096, 4098 ]
|
||||
# int** (char**, int***)
|
||||
- Kind: LF_PROCEDURE
|
||||
Procedure:
|
||||
ReturnType: 4097
|
||||
CallConv: NearC
|
||||
Options: [ None ]
|
||||
ParameterCount: 2
|
||||
ArgumentList: 4099
|
||||
symbols:
|
||||
- Name: '.debug$T'
|
||||
Value: 0
|
||||
SectionNumber: 6
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
SectionDefinition:
|
||||
Length: 68
|
||||
NumberOfRelocations: 0
|
||||
NumberOfLinenumbers: 0
|
||||
CheckSum: 2189213922
|
||||
Number: 6
|
||||
...
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user