mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-10-14 21:09:41 -07:00
fixup file checksums in the MSF streams
This commit is contained in:
1 parent
6b7cd39ff1
commit
b5f0862a91
10 files changed
+360
-606
No files matched your search
@@ -4,31 +4,29 @@
|
||||
internal String8
|
||||
lnk_make_linker_compile3(Arena *arena, COFF_MachineType machine)
|
||||
{
|
||||
String8 comp3_data = cv_make_comp3(arena,
|
||||
0,
|
||||
CV_Language_LINK,
|
||||
cv_arch_from_coff_machine(machine),
|
||||
/* ver_fe_major */ 0,
|
||||
/* ver_fe_minor */ 0,
|
||||
/* ver_fe_build */ 0,
|
||||
/* ver_feqfe */ 0,
|
||||
/* ver_major */ 14,
|
||||
/* ver_minor */ 36,
|
||||
/* ver_build */ 32537,
|
||||
/* ver_qfe */ 0,
|
||||
str8_lit(BUILD_TITLE));
|
||||
return comp3_data;
|
||||
return cv_make_comp3(arena,
|
||||
0,
|
||||
CV_Language_LINK,
|
||||
cv_arch_from_coff_machine(machine),
|
||||
/* ver_fe_major */ 0,
|
||||
/* ver_fe_minor */ 0,
|
||||
/* ver_fe_build */ 0,
|
||||
/* ver_feqfe */ 0,
|
||||
/* ver_major */ 14,
|
||||
/* ver_minor */ 36,
|
||||
/* ver_build */ 32537,
|
||||
/* ver_qfe */ 0,
|
||||
str8_lit(BUILD_TITLE));
|
||||
}
|
||||
|
||||
internal String8
|
||||
lnk_make_debug_s(Arena *arena, CV_SymbolList symbol_list)
|
||||
lnk_make_debug_s(Arena *arena, String8List symbols)
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
|
||||
CV_DebugS debug_s = {0};
|
||||
String8List *symbol_list_ptr = cv_sub_section_ptr_from_debug_s(&debug_s, CV_C13SubSectionKind_Symbols);
|
||||
*symbol_list_ptr = cv_write_symbol_list(scratch.arena, symbol_list, CV_SymbolAlign);
|
||||
cv_patch_symbol_tree_offsets(symbols, sizeof(CV_Signature), CV_SymbolAlign);
|
||||
|
||||
CV_DebugS debug_s = { .data_list[CV_C13SubSectionIdxKind_Symbols] = symbols };
|
||||
String8List debug_s_data_list = cv_data_from_debug_s_c13(scratch.arena, &debug_s, 1);
|
||||
String8 debug_s_data = str8_list_join(arena, &debug_s_data_list, 0);
|
||||
|
||||
@@ -40,10 +38,11 @@ internal String8
|
||||
lnk_make_linker_debug_symbols(Arena *arena, COFF_MachineType machine)
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
CV_SymbolList symbol_list = { .signature = CV_Signature_C13 };
|
||||
String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine);
|
||||
cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data);
|
||||
String8 debug_symbols = lnk_make_debug_s(arena, symbol_list);
|
||||
|
||||
String8List symbols = {0};
|
||||
str8_list_push(scratch.arena, &symbols, cv_make_symbol(scratch.arena, CV_SymKind_COMPILE3, lnk_make_linker_compile3(scratch.arena, machine)));
|
||||
String8 debug_symbols = lnk_make_debug_s(arena, symbols);
|
||||
|
||||
scratch_end(scratch);
|
||||
return debug_symbols;
|
||||
}
|
||||
@@ -53,20 +52,14 @@ lnk_make_dll_import_debug_symbols(Arena *arena, COFF_MachineType machine, String
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena,1);
|
||||
|
||||
CV_SymbolList symbol_list = { .signature = CV_Signature_C13 };
|
||||
|
||||
// S_OBJ
|
||||
String8 obj_data = cv_make_obj_name(scratch.arena, dll_name, 0);
|
||||
cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_OBJNAME, obj_data);
|
||||
|
||||
// S_COMPILE3
|
||||
String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine);
|
||||
cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data);
|
||||
String8List symbols = {0};
|
||||
str8_list_push(scratch.arena, &symbols, cv_make_symbol(scratch.arena, CV_SymKind_OBJNAME, cv_make_obj_name(scratch.arena, dll_name, 0)));
|
||||
str8_list_push(scratch.arena, &symbols, cv_make_symbol(scratch.arena, CV_SymKind_COMPILE3, lnk_make_linker_compile3(scratch.arena, machine)));
|
||||
|
||||
// TODO: add thunks
|
||||
|
||||
// serialize symbols
|
||||
String8 debug_symbols = lnk_make_debug_s(arena, symbol_list);
|
||||
String8 debug_symbols = lnk_make_debug_s(arena, symbols);
|
||||
|
||||
scratch_end(scratch);
|
||||
return debug_symbols;
|
||||
|
||||
Reference in new issue
Block a user