mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-02 20:18:12 +00:00
hook RDI printers to the dumper
This commit is contained in:
+15
-11
@@ -4,7 +4,7 @@
|
||||
#ifndef RADDUMP_H
|
||||
#define RADDUMP_H
|
||||
|
||||
#define RD_INDENT_WIDTH 4
|
||||
#define RD_INDENT_WIDTH 2
|
||||
#define RD_INDENT_MAX 4096
|
||||
|
||||
#define rd_printf(f, ...) str8_list_pushf(arena, out, "%S" f, indent, __VA_ARGS__)
|
||||
@@ -78,13 +78,14 @@ typedef U64 RD_Option;
|
||||
#define RD_Option_RdiTypeNodes (1ull << 42ull)
|
||||
#define RD_Option_RdiUserDefinedTypes (1ull << 43ull)
|
||||
#define RD_Option_RdiGlobalVars (1ull << 44ull)
|
||||
#define RD_Option_RdiThreadVars (1ull << 45ull)
|
||||
#define RD_Option_RdiProcedures (1ull << 46ull)
|
||||
#define RD_Option_RdiScopes (1ull << 47ull)
|
||||
#define RD_Option_RdiScopeVMap (1ull << 48ull)
|
||||
#define RD_Option_RdiInlineSites (1ull << 49ull)
|
||||
#define RD_Option_RdiNameMaps (1ull << 50ull)
|
||||
#define RD_Option_RdiStrings (1ull << 51ull)
|
||||
#define RD_Option_RdiGlobalVarsVMap (1ull << 45ull)
|
||||
#define RD_Option_RdiThreadVars (1ull << 46ull)
|
||||
#define RD_Option_RdiProcedures (1ull << 48ull)
|
||||
#define RD_Option_RdiScopes (1ull << 49ull)
|
||||
#define RD_Option_RdiScopeVMap (1ull << 50ull)
|
||||
#define RD_Option_RdiInlineSites (1ull << 51ull)
|
||||
#define RD_Option_RdiNameMaps (1ull << 52ull)
|
||||
#define RD_Option_RdiStrings (1ull << 53ull)
|
||||
|
||||
typedef struct RD_Marker
|
||||
{
|
||||
@@ -139,7 +140,8 @@ typedef struct RD_Line
|
||||
|
||||
// raddump
|
||||
|
||||
internal B32 rd_is_pe(String8 raw_data);
|
||||
internal B32 rd_is_pe (String8 raw_data);
|
||||
internal B32 rd_is_rdi(String8 raw_data);
|
||||
|
||||
internal String8 rd_string_from_flags(Arena *arena, String8List list, U64 remaining_flags);
|
||||
|
||||
@@ -163,13 +165,13 @@ internal void rd_print_disasm (Arena *arena, String8List *o
|
||||
internal String8 rd_format_hex_array(Arena *arena, U8 *ptr, U64 size);
|
||||
internal void rd_print_raw_data (Arena *arena, String8List *out, String8 indent, U64 bytes_per_row, U64 marker_count, RD_Marker *markers, String8 raw_data);
|
||||
|
||||
//
|
||||
// RDI
|
||||
//
|
||||
|
||||
internal String8 rdi_string_from_data_section_kind(Arena *arena, RDI_SectionKind v);
|
||||
internal String8 rdi_string_from_arch (Arena *arena, RDI_Arch v);
|
||||
internal String8 rdi_string_from_language (Arena *arena, RDI_Language v);
|
||||
internal String8 rdi_string_from_local_kind (Arena *arena, RDI_LocalKind v);
|
||||
internal String8 rdi_string_from_type_kind (Arena *arena, RDI_TypeKind v);
|
||||
internal String8 rdi_string_from_member_kind (Arena *arena, RDI_MemberKind v);
|
||||
|
||||
internal String8 rdi_string_from_binary_section_flags(Arena *arena, RDI_BinarySectionFlags flags);
|
||||
@@ -186,11 +188,13 @@ internal void rdi_print_line_table (Arena *arena, String8List *out, String8
|
||||
internal void rdi_print_source_line_map(Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, RDI_SourceLineMap *map);
|
||||
internal void rdi_print_unit (Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, RDI_Unit *unit);
|
||||
internal void rdi_print_type_node (Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, RDI_TypeNode *type);
|
||||
internal void rdi_print_udt (Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, RDI_UDT *udt);
|
||||
internal void rdi_print_global_variable(Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, RDI_GlobalVariable *gvar);
|
||||
internal void rdi_print_thread_variable(Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, RDI_ThreadVariable *tvar);
|
||||
internal void rdi_print_procedure (Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, RDI_Procedure *proc);
|
||||
internal void rdi_print_scope (Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, RDI_Scope *scope, RDI_Arch arch);
|
||||
internal void rdi_print_inline_site (Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, RDI_InlineSite *inline_site);
|
||||
internal void rdi_print_vmap_entry (Arena *arena, String8List *out, String8 indent, RDI_VMapEntry *v);
|
||||
|
||||
// DWARF
|
||||
|
||||
|
||||
Reference in New Issue
Block a user