mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-01 19:48:11 +00:00
went over COFF string table and changed the parser code accept to String8
This commit is contained in:
+6
-8
@@ -52,14 +52,13 @@ coff_section_flag_from_align_size(U64 align)
|
||||
}
|
||||
|
||||
internal String8
|
||||
coff_name_from_section_header(String8 raw_coff, COFF_SectionHeader *header, U64 string_table_off)
|
||||
coff_name_from_section_header(String8 string_table, COFF_SectionHeader *header)
|
||||
{
|
||||
String8 name = str8_cstring_capped(header->name, header->name + sizeof(header->name));
|
||||
if (name.str[0] == '/') {
|
||||
String8 ascii_off = str8_skip(name, 1);
|
||||
U64 name_rel_off = u64_from_str8(ascii_off, 10);
|
||||
U64 name_off = name_rel_off + string_table_off;
|
||||
name = str8_cstring_capped(raw_coff.str + name_off, raw_coff.str + raw_coff.size);
|
||||
String8 name_off_str = str8_skip(name, 1);
|
||||
U64 name_off = u64_from_str8(name_off_str, 10);
|
||||
name = str8_cstring_capped(string_table.str + name_off, string_table.str+string_table.size);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
@@ -94,12 +93,11 @@ coff_parse_section_name(String8 full_name, String8 *name_out, String8 *postfix_o
|
||||
}
|
||||
|
||||
internal String8
|
||||
coff_read_symbol_name(String8 raw_coff, U64 string_table_off, COFF_SymbolName *name)
|
||||
coff_read_symbol_name(String8 string_table, COFF_SymbolName *name)
|
||||
{
|
||||
String8 name_str = str8_lit("");
|
||||
if (name->long_name.zeroes == 0) {
|
||||
U64 name_string_off = string_table_off + name->long_name.string_table_offset;
|
||||
str8_deserial_read_cstr(raw_coff, name_string_off, &name_str);
|
||||
str8_deserial_read_cstr(string_table, name->long_name.string_table_offset, &name_str);
|
||||
} else {
|
||||
U32 i;
|
||||
for (i = 0; i < sizeof(name->short_name); ++i) {
|
||||
|
||||
Reference in New Issue
Block a user