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