mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-13 07:32:23 -07:00
sketch out dwarf in radbin
This commit is contained in:
+65
-25
@@ -845,21 +845,33 @@ rb_entry_point(CmdLine *cmdline)
|
||||
#define X(name, name_lower, title) fprintf(stderr, " - " #name_lower "\n");
|
||||
RDI_DumpSubset_XList
|
||||
#undef X
|
||||
|
||||
fprintf(stderr, "-------------------------------------------------------------------------------\n\n");
|
||||
|
||||
fprintf(stderr, "DWARF INFO SUBSET NAMES\n\n");
|
||||
#define X(name, name_lower, title) fprintf(stderr, " - " #name_lower "\n");
|
||||
DW_DumpSubset_XList
|
||||
#undef X
|
||||
}
|
||||
|
||||
//- rjf: unpack dump subset flags
|
||||
RDI_DumpSubsetFlags rdi_dump_subset_flags = RDI_DumpSubsetFlag_All;
|
||||
DW_DumpSubsetFlags dw_dump_subset_flags = DW_DumpSubsetFlag_All;
|
||||
{
|
||||
String8List only_names = cmd_line_strings(cmdline, str8_lit("only"));
|
||||
if(only_names.node_count != 0)
|
||||
{
|
||||
rdi_dump_subset_flags = 0;
|
||||
dw_dump_subset_flags = 0;
|
||||
}
|
||||
for(String8Node *n = only_names.first; n != 0; n = n->next)
|
||||
{
|
||||
if(0){}
|
||||
#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { rdi_dump_subset_flags |= RDI_DumpSubsetFlag_##name; }
|
||||
RDI_DumpSubset_XList
|
||||
#undef X
|
||||
#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { dw_dump_subset_flags |= DW_DumpSubsetFlag_##name; }
|
||||
DW_DumpSubset_XList
|
||||
#undef X
|
||||
}
|
||||
String8List omit_names = cmd_line_strings(cmdline, str8_lit("omit"));
|
||||
@@ -868,6 +880,9 @@ rb_entry_point(CmdLine *cmdline)
|
||||
if(0){}
|
||||
#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { rdi_dump_subset_flags &= ~RDI_DumpSubsetFlag_##name; }
|
||||
RDI_DumpSubset_XList
|
||||
#undef X
|
||||
#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { dw_dump_subset_flags &= ~DW_DumpSubsetFlag_##name; }
|
||||
DW_DumpSubset_XList
|
||||
#undef X
|
||||
}
|
||||
}
|
||||
@@ -877,11 +892,51 @@ rb_entry_point(CmdLine *cmdline)
|
||||
for(RB_FileNode *n = input_files.first; n != 0; n = n->next)
|
||||
{
|
||||
RB_File *f = n->v;
|
||||
str8_list_pushf(arena, &output_blobs, "# %S (%S)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format"));
|
||||
str8_list_pushf(arena, &output_blobs, "// %S (%S)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format"));
|
||||
|
||||
//- rjf: dump file info based on format
|
||||
switch(f->format)
|
||||
{
|
||||
default:{}break;
|
||||
|
||||
//- rjf: PDB
|
||||
case RB_FileFormat_PDB:
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
//- rjf: PE
|
||||
case RB_FileFormat_PE:
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
//- rjf: COFF OBJ
|
||||
case RB_FileFormat_COFF_OBJ:
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
//- rjf: COFF big OBJ
|
||||
case RB_FileFormat_COFF_BigOBJ:
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
//- rjf: COFF archive
|
||||
case RB_FileFormat_COFF_Archive:
|
||||
case RB_FileFormat_COFF_ThinArchive:
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
//- rjf: ELF
|
||||
case RB_FileFormat_ELF32:
|
||||
case RB_FileFormat_ELF64:
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
//- rjf: RDI file
|
||||
case RB_FileFormat_RDI:
|
||||
{
|
||||
@@ -902,31 +957,16 @@ rb_entry_point(CmdLine *cmdline)
|
||||
}break;
|
||||
}
|
||||
}break;
|
||||
|
||||
//- rjf: COFF archive
|
||||
case RB_FileFormat_COFF_Archive:
|
||||
case RB_FileFormat_COFF_ThinArchive:
|
||||
}
|
||||
|
||||
//- rjf: dump file extension info
|
||||
if(f->format_flags & RB_FileFormatFlag_HasDWARF)
|
||||
{
|
||||
str8_list_pushf(arena, &output_blobs, "// %S (%S) (DWARF)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format"));
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
//- rjf: COFF big OBJ
|
||||
case RB_FileFormat_COFF_BigOBJ:
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
//- rjf: COFF OBJ
|
||||
case RB_FileFormat_COFF_OBJ:
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
//- rjf: PE
|
||||
case RB_FileFormat_PE:
|
||||
{
|
||||
// TODO(rjf)
|
||||
}break;
|
||||
|
||||
String8List dump = dw_dump_list_from_sections();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -226,10 +226,7 @@
|
||||
#include "pdb/pdb.h"
|
||||
#include "pdb/pdb_parse.h"
|
||||
#include "pdb/pdb_stringize.h"
|
||||
#include "dwarf/dwarf.h"
|
||||
#include "dwarf/dwarf_parse.h"
|
||||
#include "dwarf/dwarf_coff.h"
|
||||
#include "dwarf/dwarf_elf.h"
|
||||
#include "dwarf/dwarf_inc.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"
|
||||
@@ -279,10 +276,7 @@
|
||||
#include "pdb/pdb.c"
|
||||
#include "pdb/pdb_parse.c"
|
||||
#include "pdb/pdb_stringize.c"
|
||||
#include "dwarf/dwarf.c"
|
||||
#include "dwarf/dwarf_parse.c"
|
||||
#include "dwarf/dwarf_coff.c"
|
||||
#include "dwarf/dwarf_elf.c"
|
||||
#include "dwarf/dwarf_inc.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"
|
||||
|
||||
Reference in New Issue
Block a user