mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-25 21:14:59 -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");
|
#define X(name, name_lower, title) fprintf(stderr, " - " #name_lower "\n");
|
||||||
RDI_DumpSubset_XList
|
RDI_DumpSubset_XList
|
||||||
#undef X
|
#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
|
//- rjf: unpack dump subset flags
|
||||||
RDI_DumpSubsetFlags rdi_dump_subset_flags = RDI_DumpSubsetFlag_All;
|
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"));
|
String8List only_names = cmd_line_strings(cmdline, str8_lit("only"));
|
||||||
if(only_names.node_count != 0)
|
if(only_names.node_count != 0)
|
||||||
{
|
{
|
||||||
rdi_dump_subset_flags = 0;
|
rdi_dump_subset_flags = 0;
|
||||||
|
dw_dump_subset_flags = 0;
|
||||||
}
|
}
|
||||||
for(String8Node *n = only_names.first; n != 0; n = n->next)
|
for(String8Node *n = only_names.first; n != 0; n = n->next)
|
||||||
{
|
{
|
||||||
if(0){}
|
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; }
|
#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
|
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
|
#undef X
|
||||||
}
|
}
|
||||||
String8List omit_names = cmd_line_strings(cmdline, str8_lit("omit"));
|
String8List omit_names = cmd_line_strings(cmdline, str8_lit("omit"));
|
||||||
@@ -868,6 +880,9 @@ rb_entry_point(CmdLine *cmdline)
|
|||||||
if(0){}
|
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; }
|
#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
|
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
|
#undef X
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -877,11 +892,51 @@ rb_entry_point(CmdLine *cmdline)
|
|||||||
for(RB_FileNode *n = input_files.first; n != 0; n = n->next)
|
for(RB_FileNode *n = input_files.first; n != 0; n = n->next)
|
||||||
{
|
{
|
||||||
RB_File *f = n->v;
|
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)
|
switch(f->format)
|
||||||
{
|
{
|
||||||
default:{}break;
|
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
|
//- rjf: RDI file
|
||||||
case RB_FileFormat_RDI:
|
case RB_FileFormat_RDI:
|
||||||
{
|
{
|
||||||
@@ -902,31 +957,16 @@ rb_entry_point(CmdLine *cmdline)
|
|||||||
}break;
|
}break;
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
}
|
||||||
//- rjf: COFF archive
|
|
||||||
case RB_FileFormat_COFF_Archive:
|
//- rjf: dump file extension info
|
||||||
case RB_FileFormat_COFF_ThinArchive:
|
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;
|
String8List dump = dw_dump_list_from_sections();
|
||||||
|
}
|
||||||
//- 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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -226,10 +226,7 @@
|
|||||||
#include "pdb/pdb.h"
|
#include "pdb/pdb.h"
|
||||||
#include "pdb/pdb_parse.h"
|
#include "pdb/pdb_parse.h"
|
||||||
#include "pdb/pdb_stringize.h"
|
#include "pdb/pdb_stringize.h"
|
||||||
#include "dwarf/dwarf.h"
|
#include "dwarf/dwarf_inc.h"
|
||||||
#include "dwarf/dwarf_parse.h"
|
|
||||||
#include "dwarf/dwarf_coff.h"
|
|
||||||
#include "dwarf/dwarf_elf.h"
|
|
||||||
#include "rdi_from_coff/rdi_from_coff.h"
|
#include "rdi_from_coff/rdi_from_coff.h"
|
||||||
#include "rdi_from_elf/rdi_from_elf.h"
|
#include "rdi_from_elf/rdi_from_elf.h"
|
||||||
#include "rdi_from_pdb/rdi_from_pdb.h"
|
#include "rdi_from_pdb/rdi_from_pdb.h"
|
||||||
@@ -279,10 +276,7 @@
|
|||||||
#include "pdb/pdb.c"
|
#include "pdb/pdb.c"
|
||||||
#include "pdb/pdb_parse.c"
|
#include "pdb/pdb_parse.c"
|
||||||
#include "pdb/pdb_stringize.c"
|
#include "pdb/pdb_stringize.c"
|
||||||
#include "dwarf/dwarf.c"
|
#include "dwarf/dwarf_inc.c"
|
||||||
#include "dwarf/dwarf_parse.c"
|
|
||||||
#include "dwarf/dwarf_coff.c"
|
|
||||||
#include "dwarf/dwarf_elf.c"
|
|
||||||
#include "rdi_from_coff/rdi_from_coff.c"
|
#include "rdi_from_coff/rdi_from_coff.c"
|
||||||
#include "rdi_from_elf/rdi_from_elf.c"
|
#include "rdi_from_elf/rdi_from_elf.c"
|
||||||
#include "rdi_from_pdb/rdi_from_pdb.c"
|
#include "rdi_from_pdb/rdi_from_pdb.c"
|
||||||
|
|||||||
Reference in New Issue
Block a user