mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 22:08:41 +00:00
option to rdi_from_pdb for deterministic generation; omits non-intrinsic, build-dependent information
This commit is contained in:
@@ -95,7 +95,7 @@ p2r_user2convert_from_cmdln(Arena *arena, CmdLine *cmdline)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//- rjf: define string -> flag bits
|
//- rjf: define string -> section flag bits
|
||||||
#define FlagNameMapXList \
|
#define FlagNameMapXList \
|
||||||
Case("sections", BinarySections)\
|
Case("sections", BinarySections)\
|
||||||
Case("units", Units)\
|
Case("units", Units)\
|
||||||
@@ -114,7 +114,7 @@ Case("type_name_map", TypeNameMap)\
|
|||||||
Case("link_name_map", LinkNameProcedureNameMap)\
|
Case("link_name_map", LinkNameProcedureNameMap)\
|
||||||
Case("source_path_name_map",NormalSourcePathNameMap)\
|
Case("source_path_name_map",NormalSourcePathNameMap)\
|
||||||
|
|
||||||
//- rjf: get flags
|
//- rjf: get section flags
|
||||||
{
|
{
|
||||||
result->flags = P2R_ConvertFlag_All;
|
result->flags = P2R_ConvertFlag_All;
|
||||||
String8List only_names = cmd_line_strings(cmdline, str8_lit("only"));
|
String8List only_names = cmd_line_strings(cmdline, str8_lit("only"));
|
||||||
@@ -142,6 +142,14 @@ Case("source_path_name_map",NormalSourcePathNameMap)\
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- rjf: get other flags
|
||||||
|
{
|
||||||
|
if(cmd_line_has_flag(cmdline, str8_lit("deterministic")))
|
||||||
|
{
|
||||||
|
result->flags |= P2R_ConvertFlag_Deterministic;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#undef FlagNameMapXList
|
#undef FlagNameMapXList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -3349,7 +3357,10 @@ p2r_convert(Arena *arena, P2R_User2Convert *in)
|
|||||||
top_level_info.exe_name = str8_skip_last_slash(in->input_exe_name);
|
top_level_info.exe_name = str8_skip_last_slash(in->input_exe_name);
|
||||||
top_level_info.exe_hash = exe_hash;
|
top_level_info.exe_hash = exe_hash;
|
||||||
top_level_info.voff_max = exe_voff_max;
|
top_level_info.voff_max = exe_voff_max;
|
||||||
top_level_info.producer_name = str8_lit(BUILD_TITLE_STRING_LITERAL);
|
if(!(in->flags & P2R_ConvertFlag_Deterministic))
|
||||||
|
{
|
||||||
|
top_level_info.producer_name = str8_lit(BUILD_TITLE_STRING_LITERAL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ enum
|
|||||||
P2R_ConvertFlag_TypeNameMap = (1<<15),
|
P2R_ConvertFlag_TypeNameMap = (1<<15),
|
||||||
P2R_ConvertFlag_LinkNameProcedureNameMap= (1<<16),
|
P2R_ConvertFlag_LinkNameProcedureNameMap= (1<<16),
|
||||||
P2R_ConvertFlag_NormalSourcePathNameMap = (1<<17),
|
P2R_ConvertFlag_NormalSourcePathNameMap = (1<<17),
|
||||||
|
P2R_ConvertFlag_Deterministic = (1<<18),
|
||||||
P2R_ConvertFlag_All = 0xffffffff,
|
P2R_ConvertFlag_All = 0xffffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ entry_point(CmdLine *cmdline)
|
|||||||
{
|
{
|
||||||
String8 rdi_path = push_str8f(arena, "%S/repeat_%I64u.rdi", repeat_folder, repeat_idx);
|
String8 rdi_path = push_str8f(arena, "%S/repeat_%I64u.rdi", repeat_folder, repeat_idx);
|
||||||
str8_list_push(arena, &rdi_paths, rdi_path);
|
str8_list_push(arena, &rdi_paths, rdi_path);
|
||||||
os_handle_list_push(arena, &processes, os_cmd_line_launchf("rdi_from_pdb --pdb:%S --out:%S > %S/repeat_%I64u.dump", pdb_path, rdi_path, repeat_folder, repeat_idx));
|
os_handle_list_push(arena, &processes, os_cmd_line_launchf("rdi_from_pdb --deterministic --pdb:%S --out:%S", pdb_path, rdi_path));
|
||||||
}
|
}
|
||||||
for(OS_HandleNode *n = processes.first; n != 0; n = n->next)
|
for(OS_HandleNode *n = processes.first; n != 0; n = n->next)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user