mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-11-14 10:10:11 -08:00
linux_demon: PTRACE_EVENT_STOPs can sometimes be reported even if a thread has already hit a trap (e.g. a trap net or breakpoint trap). this would sometimes cause spurious SIGTRAPs after issuing a PTRACE_INTERRUPT - so we need to flag halted threads to not treat that as a 'real' trap. furthermore, even though that trap was hit, it does not guarantee that the debugger would next see a SIGTRAP. that would cause spurious SIGILLs, because we'd resume threads *after* the trap, despite not seeing the trap, so they'd just see a malformed instruction (the bytes subsequent the initial trap). so in those cases, we need to roll such threads back, so that they re-execute the trap, and so that we see a regular SIGTRAP, and handle the trap correctly.
This commit is contained in:
1 parent
2933143b08
commit
0b91cab00a
3 files changed
+75
-47
No files matched your search
@@ -178,6 +178,7 @@ struct LNX_DMN_Thread
|
||||
void *reg_block;
|
||||
B32 is_reg_block_dirty;
|
||||
B32 pass_through_signal;
|
||||
B32 ghost_trap;
|
||||
U64 pass_through_signo;
|
||||
U64 orig_rax;
|
||||
U64 dtv_base_vaddr;
|
||||
|
||||
Reference in new issue
Block a user