Skip to content
Snippets Groups Projects

Ptrace overhaul & bitflags

Merged jD91mZM2 requested to merge jD91mZM2/kernel:ptrace-6 into master
Files
22
@@ -26,7 +26,7 @@ interrupt_stack!(debug, stack, {
@@ -26,7 +26,7 @@ interrupt_stack!(debug, stack, {
let had_singlestep = stack.iret.rflags & (1 << 8) == 1 << 8;
let had_singlestep = stack.iret.rflags & (1 << 8) == 1 << 8;
stack.set_singlestep(false);
stack.set_singlestep(false);
if ptrace::breakpoint_callback(syscall::PTRACE_SINGLESTEP).is_some() {
if ptrace::breakpoint_callback(PTRACE_STOP_SINGLESTEP, None).is_some() {
handled = true;
handled = true;
} else {
} else {
// There was no breakpoint, restore original value
// There was no breakpoint, restore original value
@@ -49,8 +49,15 @@ interrupt_stack!(non_maskable, stack, {
@@ -49,8 +49,15 @@ interrupt_stack!(non_maskable, stack, {
interrupt_stack!(breakpoint, stack, {
interrupt_stack!(breakpoint, stack, {
println!("Breakpoint trap");
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, {
interrupt_stack!(overflow, stack, {
Loading