mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-29 10:40:02 +00:00
WIP move export and import table make code to appropriate layers
This commit is contained in:
committed by
Ryan Fleury
parent
69d5010245
commit
f467ff8822
@@ -36,4 +36,43 @@ lnk_make_debug_s(Arena *arena, CV_SymbolList symbol_list)
|
||||
return debug_s_data;
|
||||
}
|
||||
|
||||
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);
|
||||
scratch_end(scratch);
|
||||
return debug_symbols;
|
||||
}
|
||||
|
||||
internal String8
|
||||
lnk_make_dll_import_debug_symbols(Arena *arena, COFF_MachineType machine, String8 dll_name)
|
||||
{
|
||||
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);
|
||||
|
||||
// S_END
|
||||
cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_END, str8_zero());
|
||||
|
||||
// TODO: add thunks
|
||||
|
||||
// serialize symbols
|
||||
String8 debug_symbols = lnk_make_debug_s(arena, symbol_list);
|
||||
|
||||
scratch_end(scratch);
|
||||
return debug_symbols;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user