mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 05:18:40 +00:00
plug in dwarf converter to radbin; hook up to both rdi generation & breakpad generation; radbin exe -> pdb / elf -> dwarf inferences; cleanup / unification passes
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
String8 rb_file_format_display_name_table[9] =
|
||||
String8 rb_file_format_display_name_table[10] =
|
||||
{
|
||||
{0},
|
||||
str8_lit_comp("PDB"),
|
||||
@@ -13,7 +13,8 @@ str8_lit_comp("COFF (OBJ)"),
|
||||
str8_lit_comp("COFF (Big OBJ)"),
|
||||
str8_lit_comp("COFF (Archive)"),
|
||||
str8_lit_comp("COFF (Thin Archive)"),
|
||||
str8_lit_comp("ELF"),
|
||||
str8_lit_comp("ELF32"),
|
||||
str8_lit_comp("ELF64"),
|
||||
str8_lit_comp("RDI"),
|
||||
};
|
||||
|
||||
|
||||
@@ -15,13 +15,14 @@ RB_FileFormat_COFF_OBJ,
|
||||
RB_FileFormat_COFF_BigOBJ,
|
||||
RB_FileFormat_COFF_Archive,
|
||||
RB_FileFormat_COFF_ThinArchive,
|
||||
RB_FileFormat_ELF,
|
||||
RB_FileFormat_ELF32,
|
||||
RB_FileFormat_ELF64,
|
||||
RB_FileFormat_RDI,
|
||||
RB_FileFormat_COUNT,
|
||||
} RB_FileFormat;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern String8 rb_file_format_display_name_table[9];
|
||||
extern String8 rb_file_format_display_name_table[10];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
|
||||
+579
-394
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,42 @@
|
||||
|
||||
#include "radbin/generated/radbin.meta.h"
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: File Types
|
||||
|
||||
typedef U32 RB_FileFormatFlags;
|
||||
enum
|
||||
{
|
||||
RB_FileFormatFlag_HasDWARF = (1<<0),
|
||||
};
|
||||
|
||||
typedef struct RB_File RB_File;
|
||||
struct RB_File
|
||||
{
|
||||
RB_FileFormat format;
|
||||
RB_FileFormatFlags format_flags;
|
||||
String8 path;
|
||||
String8 data;
|
||||
};
|
||||
|
||||
typedef struct RB_FileNode RB_FileNode;
|
||||
struct RB_FileNode
|
||||
{
|
||||
RB_FileNode *next;
|
||||
RB_File *v;
|
||||
};
|
||||
|
||||
typedef struct RB_FileList RB_FileList;
|
||||
struct RB_FileList
|
||||
{
|
||||
RB_FileNode *first;
|
||||
RB_FileNode *last;
|
||||
U64 count;
|
||||
};
|
||||
|
||||
read_only global RB_File rb_file_nil = {0};
|
||||
#define rb_file_list_first(list) ((list)->first ? (list)->first->v : &rb_file_nil)
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Top-Level Entry Point
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@ RB_FileFormatTable:
|
||||
{ COFF_BigOBJ "COFF (Big OBJ)" }
|
||||
{ COFF_Archive "COFF (Archive)" }
|
||||
{ COFF_ThinArchive "COFF (Thin Archive)" }
|
||||
{ ELF "ELF" }
|
||||
{ ELF32 "ELF32" }
|
||||
{ ELF64 "ELF64" }
|
||||
{ RDI "RDI" }
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
//- rjf: [h]
|
||||
#include "base/base_inc.h"
|
||||
#include "linker/hash_table.h"
|
||||
#include "os/os_inc.h"
|
||||
#include "path/path.h"
|
||||
#include "async/async.h"
|
||||
@@ -28,17 +29,25 @@
|
||||
#include "elf/elf_parse.h"
|
||||
#include "codeview/codeview.h"
|
||||
#include "codeview/codeview_parse.h"
|
||||
#include "dwarf/dwarf.h"
|
||||
#include "dwarf/dwarf_parse.h"
|
||||
#include "dwarf/dwarf_coff.h"
|
||||
#include "dwarf/dwarf_elf.h"
|
||||
#include "msf/msf.h"
|
||||
#include "msf/msf_parse.h"
|
||||
#include "pdb/pdb.h"
|
||||
#include "pdb/pdb_parse.h"
|
||||
#include "pdb/pdb_stringize.h"
|
||||
#include "rdi_from_coff/rdi_from_coff.h"
|
||||
#include "rdi_from_elf/rdi_from_elf.h"
|
||||
#include "rdi_from_pdb/rdi_from_pdb.h"
|
||||
#include "rdi_breakpad_from_pdb/rdi_breakpad_from_pdb.h"
|
||||
#include "rdi_from_dwarf/rdi_from_dwarf.h"
|
||||
#include "radbin/radbin.h"
|
||||
|
||||
//- rjf: [c]
|
||||
#include "base/base_inc.c"
|
||||
#include "linker/hash_table.c"
|
||||
#include "os/os_inc.c"
|
||||
#include "path/path.c"
|
||||
#include "async/async.c"
|
||||
@@ -51,13 +60,20 @@
|
||||
#include "elf/elf_parse.c"
|
||||
#include "codeview/codeview.c"
|
||||
#include "codeview/codeview_parse.c"
|
||||
#include "dwarf/dwarf.c"
|
||||
#include "dwarf/dwarf_parse.c"
|
||||
#include "dwarf/dwarf_coff.c"
|
||||
#include "dwarf/dwarf_elf.c"
|
||||
#include "msf/msf.c"
|
||||
#include "msf/msf_parse.c"
|
||||
#include "pdb/pdb.c"
|
||||
#include "pdb/pdb_parse.c"
|
||||
#include "pdb/pdb_stringize.c"
|
||||
#include "rdi_from_coff/rdi_from_coff.c"
|
||||
#include "rdi_from_elf/rdi_from_elf.c"
|
||||
#include "rdi_from_pdb/rdi_from_pdb.c"
|
||||
#include "rdi_breakpad_from_pdb/rdi_breakpad_from_pdb.c"
|
||||
#include "rdi_from_dwarf/rdi_from_dwarf.c"
|
||||
#include "radbin/radbin.c"
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user