7 #ifndef RETDEC_PDBPARSER_PDB_TYPES_H
8 #define RETDEC_PDBPARSER_PDB_TYPES_H
100 virtual void dump(
bool nested =
false)
165 virtual void dump(
bool nested =
false);
171 virtual std::string
to_llvm(
void);
202 virtual void dump(
bool nested =
false);
242 virtual void dump(
bool nested =
false);
248 virtual std::string
to_llvm(
void);
279 virtual void dump(
bool nested =
false);
285 virtual std::string
to_llvm(
void);
317 virtual void dump(
bool nested =
false);
323 virtual std::string
to_llvm(
void);
352 virtual void dump(
bool nested =
false);
358 virtual std::string
to_llvm(
void);
392 virtual void dump(
bool nested =
false)
396 printf(
"/* Argument list */\n");
448 virtual void dump(
bool nested =
false);
454 virtual std::string
to_llvm(
void);
492 virtual void dump(
bool nested =
false);
498 virtual std::string
to_llvm(
void);
524 virtual void dump(
bool nested =
false);
530 virtual std::string
to_llvm(
void);
560 virtual void dump(
bool nested =
false);
566 virtual std::string
to_llvm(
void);
589 reinterpret_cast<
HDR *>(s->data))
Definition: pdb_types.h:373
virtual void parse(lfArgList *record, int, PDBTypeDefIndexMap &)
Definition: pdb_types.h:387
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:409
virtual bool is_fully_defined(void)
Definition: pdb_types.h:399
PDBTypeArglist(int ind)
Definition: pdb_types.h:376
lfArgList * arglist
Definition: pdb_types.h:413
virtual std::string to_llvm(void)
Definition: pdb_types.h:404
virtual void dump(bool nested=false)
Definition: pdb_types.h:392
virtual ~PDBTypeArglist(void)
Definition: pdb_types.h:381
Definition: pdb_types.h:263
PDBTypeArray(int ind)
Definition: pdb_types.h:266
PDBTypeDef * array_elemtype_def
Definition: pdb_types.h:294
int array_count
Definition: pdb_types.h:297
int array_elemtype_index
Definition: pdb_types.h:290
virtual std::string to_llvm(void)
Definition: pdb_types.cpp:262
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:286
virtual ~PDBTypeArray(void)
Definition: pdb_types.h:272
int array_idxtype_index
Definition: pdb_types.h:295
virtual void parse(lfArray *record, int size, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:229
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:248
virtual bool is_fully_defined(void)
Definition: pdb_types.h:280
PDBTypeDef * array_idxtype_def
Definition: pdb_types.h:296
Definition: pdb_types.h:146
PDBTypeBase(int ind, ePDBBaseType t, bool ptr, int bits, const char *desc)
Definition: pdb_types.h:149
ePDBBaseType base_type
Definition: pdb_types.h:176
bool is_pointer
Definition: pdb_types.h:180
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:27
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:172
virtual void parse(lfRecord *, int, PDBTypeDefIndexMap &)
Definition: pdb_types.h:161
const char * description
Definition: pdb_types.h:182
int size_bits
Definition: pdb_types.h:181
virtual bool is_fully_defined(void)
Definition: pdb_types.h:166
virtual std::string to_llvm(void)
Definition: pdb_types.cpp:35
virtual ~PDBTypeBase(void)
Definition: pdb_types.h:155
Definition: pdb_types.h:545
virtual std::string to_llvm(void)
Definition: pdb_types.cpp:645
virtual ~PDBTypeClass(void)
Definition: pdb_types.h:553
virtual bool is_fully_defined(void)
Definition: pdb_types.h:561
char * class_name
Definition: pdb_types.h:575
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:567
virtual void parse(lfClass *record, int size, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:625
unsigned int class_count
Definition: pdb_types.h:571
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:637
PDBTypeClass(int ind)
Definition: pdb_types.h:548
Definition: pdb_types.h:337
int const_utype_index
Definition: pdb_types.h:363
virtual void parse(lfModifier *record, int, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:315
PDBTypeDef * const_utype_def
Definition: pdb_types.h:367
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:359
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:323
virtual bool is_fully_defined(void)
Definition: pdb_types.h:353
virtual std::string to_llvm(void)
Definition: pdb_types.cpp:335
virtual ~PDBTypeConst(void)
Definition: pdb_types.h:345
PDBTypeConst(int ind)
Definition: pdb_types.h:340
Definition: pdb_types.h:84
virtual bool is_fully_defined(void)
Definition: pdb_types.h:106
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:116
std::string get_default_llvm(void)
Definition: pdb_types.h:121
virtual std::string to_llvm(void)
Definition: pdb_types.h:111
virtual ~PDBTypeDef(void)
Definition: pdb_types.h:93
virtual void dump(bool nested=false)
Definition: pdb_types.h:100
PDBTypeDef(int ind, ePDBTypeClass c, int bts=0)
Definition: pdb_types.h:87
int type_index
Definition: pdb_types.h:125
int size_bytes
Definition: pdb_types.h:130
ePDBTypeClass type_class
Definition: pdb_types.h:129
Definition: pdb_types.h:225
virtual std::string to_llvm(void)
Definition: pdb_types.cpp:218
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:198
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:249
virtual ~PDBTypeEnum(void)
Definition: pdb_types.h:233
unsigned int enum_count
Definition: pdb_types.h:253
PDBTypeFieldEnumerate ** enum_members
Definition: pdb_types.h:257
char * enum_name
Definition: pdb_types.h:258
PDBTypeEnum(int ind)
Definition: pdb_types.h:228
virtual void parse(lfEnum *record, int size, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:171
virtual bool is_fully_defined(void)
Definition: pdb_types.h:243
Definition: pdb_types.h:187
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:213
PDBTypeFieldList(int ind)
Definition: pdb_types.h:190
virtual ~PDBTypeFieldList(void)
Definition: pdb_types.h:195
virtual bool is_fully_defined(void)
Definition: pdb_types.h:203
std::vector< PDBTypeField > fields
Definition: pdb_types.h:217
virtual std::string to_llvm(void)
Definition: pdb_types.h:208
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:158
virtual void parse(lfFieldList *record, int size, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:79
Definition: pdb_types.h:428
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:455
int func_clstype_index
Definition: pdb_types.h:469
PDBTypeDef * func_rettype_def
Definition: pdb_types.h:463
virtual void parse(lfProc *record, int size, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:346
int func_thistype_index
Definition: pdb_types.h:471
bool func_is_variadic
Definition: pdb_types.h:467
int func_calltype
Definition: pdb_types.h:464
virtual bool is_fully_defined(void)
Definition: pdb_types.h:449
int func_rettype_index
Definition: pdb_types.h:459
PDBTypeFuncArg * func_args
Definition: pdb_types.h:466
PDBTypeDef * func_thistype_def
Definition: pdb_types.h:472
virtual std::string to_llvm(void)
Definition: pdb_types.cpp:461
void parse_mfunc(lfMFunc *record, int size, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:379
PDBTypeDef * func_clstype_def
Definition: pdb_types.h:470
bool func_is_clsmember
Definition: pdb_types.h:468
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:412
int func_args_count
Definition: pdb_types.h:465
virtual ~PDBTypeFunction(void)
Definition: pdb_types.h:438
PDBTypeFunction(int ind)
Definition: pdb_types.h:431
Definition: pdb_types.h:302
virtual std::string to_llvm(void)
Definition: pdb_types.cpp:303
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:285
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:324
PDBTypeDef * ptr_utype_def
Definition: pdb_types.h:332
virtual ~PDBTypePointer(void)
Definition: pdb_types.h:310
virtual bool is_fully_defined(void)
Definition: pdb_types.h:318
int ptr_utype_index
Definition: pdb_types.h:328
PDBTypePointer(int ind)
Definition: pdb_types.h:305
virtual void parse(lfPointer *record, int size, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:276
Definition: pdb_types.h:477
virtual void parse(lfStructure *record, int size, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:472
virtual std::string to_llvm_identified(void)
Definition: pdb_types.cpp:554
virtual ~PDBTypeStruct(void)
Definition: pdb_types.h:485
PDBTypeStruct(int ind)
Definition: pdb_types.h:480
virtual std::string to_llvm(void)
Definition: pdb_types.cpp:528
std::vector< PDBTypeFieldMember * > struct_members
Definition: pdb_types.h:503
unsigned int struct_count
Definition: pdb_types.h:502
std::string struct_name
Definition: pdb_types.h:504
virtual bool is_fully_defined(void)
Definition: pdb_types.h:493
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:503
Definition: pdb_types.h:509
virtual bool is_fully_defined(void)
Definition: pdb_types.h:525
virtual ~PDBTypeUnion(void)
Definition: pdb_types.h:517
virtual void parse(lfUnion *record, int size, PDBTypeDefIndexMap &types)
Definition: pdb_types.cpp:565
virtual std::string to_llvm(void)
Definition: pdb_types.cpp:614
std::vector< PDBTypeFieldMember * > union_members
Definition: pdb_types.h:539
unsigned int union_count
Definition: pdb_types.h:535
PDBTypeUnion(int ind)
Definition: pdb_types.h:512
char * union_name
Definition: pdb_types.h:540
virtual void dump(bool nested=false)
Definition: pdb_types.cpp:589
virtual std::string to_llvm_identified(void)
Definition: pdb_types.h:531
Definition: pdb_types.h:584
~PDBTypes(void)
Definition: pdb_types.cpp:1281
void dump_types(void)
Definition: pdb_types.cpp:1255
PDBTypes(PDBStream *s)
Definition: pdb_types.h:587
HDR * tpi_header
Definition: pdb_types.h:630
PDBTypeDef * get_type_by_name(char *name)
Definition: pdb_types.h:607
void parse_types(void)
Definition: pdb_types.cpp:1070
unsigned int pdb_tpi_size
Definition: pdb_types.h:625
void print_types(void)
Definition: pdb_types.cpp:1262
bool parsed
Definition: pdb_types.h:627
PDBTypeDefIndexMap types_fully_defined
Definition: pdb_types.h:634
char * pdb_tpi_data
Definition: pdb_types.h:626
PDBTypeDef * get_type_by_index(int index)
Definition: pdb_types.h:599
PDBTypeDefIndexMap types
Definition: pdb_types.h:633
PDBTypeDefNameMap types_byname
Definition: pdb_types.h:635
PHDR TPILoadTypeInfo(void)
struct retdec::pdbparser::_PDBTypeField PDBTypeField
ePDBFieldType
Definition: pdb_types.h:31
@ PDBFIELD_MEMBER
Definition: pdb_types.h:32
@ PDBFIELD_ENUMERATE
Definition: pdb_types.h:32
ePDBBaseType
Definition: pdb_types.h:134
@ PDBBASETYPE_VARIADIC
Definition: pdb_types.h:141
@ PDBBASETYPE_BOOL
Definition: pdb_types.h:136
@ PDBBASETYPE_INT_UNSIGNED
Definition: pdb_types.h:138
@ PDBBASETYPE_INT_SIGNED
Definition: pdb_types.h:137
@ PDBBASETYPE_HRESULT
Definition: pdb_types.h:140
@ PDBBASETYPE_FLOAT
Definition: pdb_types.h:139
@ PDBBASETYPE_VOID
Definition: pdb_types.h:135
std::map< int, PDBTypeDef * > PDBTypeDefIndexMap
Definition: pdb_types.h:19
struct retdec::pdbparser::_PDBTypeFieldEnumerate PDBTypeFieldEnumerate
std::map< std::string, PDBTypeDef * > PDBTypeDefNameMap
Definition: pdb_types.h:23
struct retdec::pdbparser::_PDBTypeFuncArg PDBTypeFuncArg
struct retdec::pdbparser::_PDBTypeFieldMember PDBTypeFieldMember
ePDBTypeClass
Definition: pdb_types.h:68
@ PDBTYPE_ARRAY
Definition: pdb_types.h:71
@ PDBTYPE_BASE
Definition: pdb_types.h:69
@ PDBTYPE_UNION
Definition: pdb_types.h:77
@ PDBTYPE_POINTER
Definition: pdb_types.h:72
@ PDBTYPE_ARGLIST
Definition: pdb_types.h:74
@ PDBTYPE_ENUM
Definition: pdb_types.h:70
@ PDBTYPE_CLASS
Definition: pdb_types.h:78
@ PDBTYPE_STRUCT
Definition: pdb_types.h:76
@ PDBTYPE_FIELDLIST
Definition: pdb_types.h:69
@ PDBTYPE_FUNCTION
Definition: pdb_types.h:75
@ PDBTYPE_CONST
Definition: pdb_types.h:73
Definition: archive_wrapper.h:19
Definition: pdb_info.h:1058
Definition: pdb_utils.h:95
Definition: pdb_types.h:37
char * name
Definition: pdb_types.h:39
int value
Definition: pdb_types.h:38
Definition: pdb_types.h:44
char * name
Definition: pdb_types.h:48
PDBTypeDef * type_def
Definition: pdb_types.h:47
int offset
Definition: pdb_types.h:45
int type_index
Definition: pdb_types.h:46
Definition: pdb_types.h:53
PDBTypeFieldEnumerate Enumerate
Definition: pdb_types.h:57
PDBTypeFieldMember Member
Definition: pdb_types.h:58
ePDBFieldType field_type
Definition: pdb_types.h:54
Definition: pdb_types.h:421
int type_index
Definition: pdb_types.h:422
PDBTypeDef * type_def
Definition: pdb_types.h:423
Definition: pdb_info.h:1380
Definition: pdb_info.h:1166
Definition: pdb_info.h:1200
Definition: pdb_info.h:1247
Definition: pdb_info.h:1544
Definition: pdb_info.h:1353
Definition: pdb_info.h:1151
Definition: pdb_info.h:1268
Definition: pdb_info.h:1332
Definition: pdb_info.h:1228
Definition: pdb_info.h:1556