From 40449d32b569aa174a631d839a8ce6bbeb573dbe Mon Sep 17 00:00:00 2001 From: jD91mZM2 <me@krake.one> Date: Wed, 31 Jul 2019 16:43:49 +0200 Subject: [PATCH] Allow catching int3 --- src/arch/x86_64/interrupt/exception.rs | 11 +++++++++-- syscall | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/arch/x86_64/interrupt/exception.rs b/src/arch/x86_64/interrupt/exception.rs index 0aba0049..e76f3935 100644 --- a/src/arch/x86_64/interrupt/exception.rs +++ b/src/arch/x86_64/interrupt/exception.rs @@ -49,8 +49,15 @@ interrupt_stack!(non_maskable, stack, { interrupt_stack!(breakpoint, stack, { println!("Breakpoint trap"); - stack.dump(); - ksignal(SIGTRAP); + + let guard = ptrace::set_process_regs(stack); + + if ptrace::breakpoint_callback(PTRACE_STOP_BREAKPOINT, None).is_none() { + drop(guard); + + stack.dump(); + ksignal(SIGTRAP); + } }); interrupt_stack!(overflow, stack, { diff --git a/syscall b/syscall index 75a1e6f9..bf5e138d 160000 --- a/syscall +++ b/syscall @@ -1 +1 @@ -Subproject commit 75a1e6f970bad42c7460b8164e59028c61eaf645 +Subproject commit bf5e138def0f8ad9c4ce87b8eca2d96b57aef8ea -- GitLab