re-introduce native breakpoints
This commit is contained in:
parent
c517abdcf9
commit
3f646cd636
18
cpu.c
18
cpu.c
@ -89,6 +89,8 @@ int libafl_qemu_num_regs(CPUState* cpu);
|
|||||||
|
|
||||||
int libafl_qemu_set_breakpoint(target_ulong addr);
|
int libafl_qemu_set_breakpoint(target_ulong addr);
|
||||||
int libafl_qemu_remove_breakpoint(target_ulong addr);
|
int libafl_qemu_remove_breakpoint(target_ulong addr);
|
||||||
|
void libafl_qemu_set_native_breakpoint( vaddr );
|
||||||
|
void libafl_qemu_remove_native_breakpoint( vaddr );
|
||||||
size_t libafl_qemu_set_hook(target_ulong pc, void (*callback)(target_ulong, uint64_t),
|
size_t libafl_qemu_set_hook(target_ulong pc, void (*callback)(target_ulong, uint64_t),
|
||||||
uint64_t data, int invalidate);
|
uint64_t data, int invalidate);
|
||||||
size_t libafl_qemu_remove_hooks_at(target_ulong addr, int invalidate);
|
size_t libafl_qemu_remove_hooks_at(target_ulong addr, int invalidate);
|
||||||
@ -226,6 +228,22 @@ int libafl_qemu_remove_breakpoint(target_ulong pc)
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void libafl_qemu_set_native_breakpoint(vaddr pc)
|
||||||
|
{
|
||||||
|
CPUState *cpu;
|
||||||
|
CPU_FOREACH(cpu) {
|
||||||
|
cpu_breakpoint_insert(cpu, pc, BP_GDB, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void libafl_qemu_remove_native_breakpoint(vaddr pc)
|
||||||
|
{
|
||||||
|
CPUState *cpu;
|
||||||
|
CPU_FOREACH(cpu) {
|
||||||
|
cpu_breakpoint_remove(cpu, pc, BP_GDB);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
size_t libafl_qemu_set_hook(target_ulong pc, void (*callback)(target_ulong, uint64_t),
|
size_t libafl_qemu_set_hook(target_ulong pc, void (*callback)(target_ulong, uint64_t),
|
||||||
uint64_t data, int invalidate)
|
uint64_t data, int invalidate)
|
||||||
{
|
{
|
||||||
|
@ -305,7 +305,10 @@ void cpu_handle_guest_debug(CPUState *cpu)
|
|||||||
cpu_single_step(cpu, 0);
|
cpu_single_step(cpu, 0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gdb_set_stop_cpu(cpu);
|
/* Begin LibAFL changes */
|
||||||
|
// With LibAFL Breakpoints there is no gdb attached.
|
||||||
|
// gdb_set_stop_cpu(cpu);
|
||||||
|
/* End LibAFL changes */
|
||||||
qemu_system_debug_request();
|
qemu_system_debug_request();
|
||||||
cpu->stopped = true;
|
cpu->stopped = true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user