mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-11-14 10:10:11 -08:00
'ghost exceptions' fix - spoof hit detection needs to occur based on the demon event's reported exception address, rather than wherever the instruction pointer happens to be at the time of the exception
This commit is contained in:
1 parent
c1a2023b15
commit
e82041e5df
2 files changed
+8
-1
No files matched your search
@@ -5331,7 +5331,7 @@ ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg)
|
||||
if(spoof_mode &&
|
||||
dmn_handle_match(target_process.dmn_handle, event->process) &&
|
||||
dmn_handle_match(target_thread.dmn_handle, event->thread) &&
|
||||
spoof.new_ip_value == event->instruction_pointer)
|
||||
spoof.new_ip_value == event->address)
|
||||
{
|
||||
hit_spoof = 1;
|
||||
log_infof("hit_spoof\n");
|
||||
|
||||
@@ -10933,6 +10933,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event)
|
||||
if(thread != &ctrl_entity_nil)
|
||||
{
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, rd_font_from_slot(RD_FontSlot_Icons), ui_top_font_size(), ui_top_palette()->text, rd_icon_kind_text_table[RD_IconKind_CircleFilled]);
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" "));
|
||||
dr_fancy_string_list_concat_in_place(&fstrs, &thread_fstrs);
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" hit a breakpoint"));
|
||||
}
|
||||
@@ -10948,6 +10949,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event)
|
||||
{
|
||||
default:
|
||||
{
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" "));
|
||||
dr_fancy_string_list_concat_in_place(&fstrs, &thread_fstrs);
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" hit an exception - "));
|
||||
String8 exception_code_string = str8_from_u64(arena, event->exception_code, 16, 0, 0);
|
||||
@@ -10961,6 +10963,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event)
|
||||
}break;
|
||||
case CTRL_ExceptionKind_CppThrow:
|
||||
{
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" "));
|
||||
dr_fancy_string_list_concat_in_place(&fstrs, &thread_fstrs);
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" hit a C++ exception - "));
|
||||
String8 exception_code_string = str8_from_u64(arena, event->exception_code, 16, 0, 0);
|
||||
@@ -10968,6 +10971,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event)
|
||||
}break;
|
||||
case CTRL_ExceptionKind_MemoryRead:
|
||||
{
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" "));
|
||||
dr_fancy_string_list_concat_in_place(&fstrs, &thread_fstrs);
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" hit an exception - "));
|
||||
String8 exception_code_string = str8_from_u64(arena, event->exception_code, 16, 0, 0);
|
||||
@@ -10976,6 +10980,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event)
|
||||
}break;
|
||||
case CTRL_ExceptionKind_MemoryWrite:
|
||||
{
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" "));
|
||||
dr_fancy_string_list_concat_in_place(&fstrs, &thread_fstrs);
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" hit an exception - "));
|
||||
String8 exception_code_string = str8_from_u64(arena, event->exception_code, 16, 0, 0);
|
||||
@@ -10984,6 +10989,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event)
|
||||
}break;
|
||||
case CTRL_ExceptionKind_MemoryExecute:
|
||||
{
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" "));
|
||||
dr_fancy_string_list_concat_in_place(&fstrs, &thread_fstrs);
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" hit an exception - "));
|
||||
String8 exception_code_string = str8_from_u64(arena, event->exception_code, 16, 0, 0);
|
||||
@@ -11011,6 +11017,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event)
|
||||
case CTRL_EventCause_InterruptedByTrap:
|
||||
{
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, rd_font_from_slot(RD_FontSlot_Icons), ui_top_font_size(), ui_top_palette()->text, rd_icon_kind_text_table[RD_IconKind_WarningBig]);
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" "));
|
||||
dr_fancy_string_list_concat_in_place(&fstrs, &thread_fstrs);
|
||||
dr_fancy_string_list_push_new(arena, &fstrs, ui_top_font(), ui_top_font_size(), ui_top_palette()->text, str8_lit(" hit a trap"));
|
||||
}break;
|
||||
|
||||
Reference in new issue
Block a user