mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-08 06:48:41 +00:00
tighten architecture-specific path for unwinder
This commit is contained in:
+10
-6
@@ -1437,10 +1437,7 @@ ctrl_unwind_from_thread(Arena *arena, CTRL_EntityStore *store, CTRL_MachineID ma
|
||||
|
||||
//- rjf: loop & unwind
|
||||
UNW_MemView memview = stack_memview;
|
||||
if(regs_block_good && stack_memview_good) switch(arch)
|
||||
{
|
||||
default:{}break;
|
||||
case Architecture_x64:
|
||||
if(regs_block_good && stack_memview_good)
|
||||
{
|
||||
unwind.error = 0;
|
||||
for(;;)
|
||||
@@ -1488,7 +1485,15 @@ ctrl_unwind_from_thread(Arena *arena, CTRL_EntityStore *store, CTRL_MachineID ma
|
||||
unwind.count += 1;
|
||||
|
||||
// rjf: unwind one step
|
||||
UNW_Result unwind_step = unw_pe_x64(binary_data, &dbgi->pe, module_vaddr_range.min, &memview, (UNW_X64_Regs *)regs_block);
|
||||
UNW_Result unwind_step = {0};
|
||||
switch(arch)
|
||||
{
|
||||
default:{unwind_step.dead = 1;}break;
|
||||
case Architecture_x64:
|
||||
{
|
||||
unwind_step = unw_pe_x64(binary_data, &dbgi->pe, module_vaddr_range.min, &memview, (UNW_X64_Regs *)regs_block);
|
||||
}break;
|
||||
}
|
||||
|
||||
// rjf: cancel on bad step
|
||||
if(unwind_step.dead != 0)
|
||||
@@ -1505,7 +1510,6 @@ ctrl_unwind_from_thread(Arena *arena, CTRL_EntityStore *store, CTRL_MachineID ma
|
||||
break;
|
||||
}
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
dbgi_scope_close(scope);
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
////////////////////////////////
|
||||
//~ rjf: Frontend/UI Pass Tasks
|
||||
//
|
||||
// [ ] n-row table selection, in watch window & other UIs, multi-selection
|
||||
// ctrl+C
|
||||
// [ ] UI_NavActions, OS_Event -> UI_Event (single event stream)
|
||||
//
|
||||
// [ ] committing needs to happen when navigating focus away for any reason
|
||||
// [ ] better discoverability for view rules - have better help hover tooltip,
|
||||
// info on arguments, and better autocomplete lister
|
||||
|
||||
Reference in New Issue
Block a user