7 #ifndef RETDEC_PDBPARSER_PDB_FILE_H
8 #define RETDEC_PDBPARSER_PDB_FILE_H
35 #define PDB_VERSION_200 0x200
36 #define PDB_SIGNATURE_200_SIZE 0x2C
37 #define PDB_SIGNATURE_200 "Microsoft C/C++ program database 2.00\r\n\032JG\0"
39 #define PDB_VERSION_700 0x700
40 #define PDB_SIGNATURE_700_SIZE 0x20
41 #define PDB_SIGNATURE_700 "Microsoft C/C++ MSF 7.00\r\n\032DS\0\0"
44 #define PDB_VERSION_INDEPENDENT_SIGNATURE_SIZE 0x100
50 #define PDB_STREAM_ROOT 0
51 #define PDB_STREAM_PDB 1
52 #define PDB_STREAM_TPI 2
53 #define PDB_STREAM_DBI 3
Definition: pdb_file.h:133
PDBStream * get_stream(unsigned int num)
Definition: pdb_file.h:155
PDB_HEADER * pdb_header
Definition: pdb_file.h:221
PDBGlobalVarAddressMap * get_global_variables(void)
Definition: pdb_file.h:184
PDBSectionsVec sections
Definition: pdb_file.h:233
void print_modules(void)
Definition: pdb_file.cpp:201
void parse_sections(uint64_t image_base)
Definition: pdb_file.cpp:494
PDBFileState load_pdb_file(const char *filename)
Definition: pdb_file.cpp:29
bool pdb_loaded
Definition: pdb_file.h:208
PDBSymbols * pdb_symbols
Definition: pdb_file.h:228
PDBFileState load_pdb_v200(void)
Definition: pdb_file.cpp:361
int pdb_fpo_num
Definition: pdb_file.h:216
PDBTypes * pdb_types
Definition: pdb_file.h:227
PDBSymbols * get_symbols_container(void)
Definition: pdb_file.h:173
PDBModulesVec modules
Definition: pdb_file.h:232
void dump_PE_sections(void)
Definition: pdb_file.cpp:271
int pdb_sec_num
Definition: pdb_file.h:218
PDBFunctionAddressMap * get_functions(void)
Definition: pdb_file.h:177
PDBTypes * get_types_container(void)
Definition: pdb_file.h:169
unsigned int get_version(void)
Definition: pdb_file.h:151
const char * get_module_name(unsigned int num)
Definition: pdb_file.h:162
unsigned int pdb_version
Definition: pdb_file.h:211
PDBStreamsVec streams
Definition: pdb_file.h:231
bool stream_is_linear(PDB_DWORD *pages, int num_pages)
Definition: pdb_file.cpp:330
const char * pdb_filename
Definition: pdb_file.h:210
PDB_ROOT * pdb_root_dir
Definition: pdb_file.h:222
PDBFileState load_pdb_v700(void)
Definition: pdb_file.cpp:372
unsigned int page_size
Definition: pdb_file.h:212
PDBInfo70 * pdb_info_v700
Definition: pdb_file.h:223
PDBFile(void)
Definition: pdb_file.h:135
int pdb_newfpo_num
Definition: pdb_file.h:217
bool save_streams_to_files(void)
Definition: pdb_file.cpp:144
void initialize(uint64_t image_base=0)
Definition: pdb_file.cpp:91
char * pdb_file_data
Definition: pdb_file.h:214
NewDBIHdr * dbi_header_v700
Definition: pdb_file.h:224
void dump_FPO(void)
Definition: pdb_file.cpp:229
~PDBFile(void)
Definition: pdb_file.cpp:306
char * extract_stream(PDB_DWORD *pages, int num_pages)
Definition: pdb_file.cpp:345
bool pdb_initialized
Definition: pdb_file.h:209
unsigned int num_streams
Definition: pdb_file.h:215
void print_pdb_file_info(void)
Definition: pdb_file.cpp:167
void parse_modules(void)
Definition: pdb_file.cpp:437
unsigned int pdb_file_size
Definition: pdb_file.h:213
Definition: pdb_symbols.h:122
PDBGlobalVarAddressMap & get_global_variables(void)
Definition: pdb_symbols.h:146
PDBFunctionAddressMap & get_functions(void)
Definition: pdb_symbols.h:141
Definition: pdb_types.h:584
struct retdec::pdbparser::_PDB_STREAM_200 PDB_STREAM_200
std::vector< PDBModule > PDBModulesVec
Definition: pdb_utils.h:114
std::vector< PDBStream > PDBStreamsVec
Definition: pdb_utils.h:103
unsigned char PDB_BYTE
Definition: pdb_utils.h:33
struct retdec::pdbparser::_PDB_HEADER_700 PDB_HEADER_700
struct retdec::pdbparser::_PDB_ROOT_700 PDB_ROOT_700
void * PDB_PVOID
Definition: pdb_utils.h:43
unsigned short PDB_WORD
Definition: pdb_utils.h:35
unsigned int PDB_DWORD
Definition: pdb_utils.h:21
struct retdec::pdbparser::_PDB_HEADER_200 PDB_HEADER_200
union retdec::pdbparser::_PDB_ROOT PDB_ROOT
std::vector< PDBPESection > PDBSectionsVec
Definition: pdb_utils.h:125
union retdec::pdbparser::_PDB_HEADER PDB_HEADER
PDBFileState
Definition: pdb_file.h:23
@ PDB_STATE_ALREADY_LOADED
Definition: pdb_file.h:25
@ PDB_STATE_OK
Definition: pdb_file.h:24
@ PDB_STATE_UNSUPPORTED_VERSION
Definition: pdb_file.h:28
@ PDB_STATE_INVALID_FILE
Definition: pdb_file.h:27
@ PDB_STATE_ERR_FILE_OPEN
Definition: pdb_file.h:26
std::map< uint64_t, PDBFunction * > PDBFunctionAddressMap
Definition: pdb_symbols.h:96
std::map< uint64_t, PDBGlobalVariable > PDBGlobalVarAddressMap
Definition: pdb_symbols.h:115
struct retdec::pdbparser::_PDB_ROOT_200 PDB_ROOT_200
Definition: archive_wrapper.h:19
#define PDB_SIGNATURE_200_SIZE
Definition: pdb_file.h:36
#define PDB_VERSION_INDEPENDENT_SIGNATURE_SIZE
Definition: pdb_file.h:44
#define PDB_SIGNATURE_700_SIZE
Definition: pdb_file.h:40
Definition: pdb_info.h:1631
Definition: pdb_info.h:1002
Definition: pdb_utils.h:95
Definition: pdb_file.h:80
PDB_WORD wReserved
Definition: pdb_file.h:82
PDB_WORD wStreams
Definition: pdb_file.h:81
PDB_STREAM_200 aStreams[]
Definition: pdb_file.h:83
Definition: pdb_file.h:104
PDB_DWORD adStreamSizes[]
Definition: pdb_file.h:106
PDB_DWORD dNumStreams
Definition: pdb_file.h:105
Definition: pdb_file.h:60
PDB_PVOID pReserved
Definition: pdb_file.h:62
PDB_DWORD dStreamBytes
Definition: pdb_file.h:61
Definition: pdb_file.h:123
PDB_ROOT_700 V700
Definition: pdb_file.h:125
PDB_ROOT_200 V200
Definition: pdb_file.h:124