mirror of
https://github.com/radareorg/radare2.git
synced 2024-11-28 07:30:33 +00:00
313d4b4893
* Added RCoreBind.syncDebugMaps() and RCoreBind.getDebugMaps() api * Refactor breakpoint validation ##debug * Reenable db tests and add new tests to check validity * Add perm check to isMapped and remove map sync to improve performance |
||
---|---|---|
.. | ||
p | ||
bp_io.c | ||
bp_plugin.c | ||
bp_traptrace.c | ||
bp_watch.c | ||
bp.c | ||
Makefile | ||
meson.build | ||
README |
libr.bp ======= Breakpoint API - Manages list of defined breakpoints - Determines if a stop is caused by a breakpoint - Owns a database of multiple types of breakpoints - arch and os based ones - Supports endianness - r_bp_get should return a buffer and a length - Manages conditional breakpoints expressions - Types of breakpoints - software (traps) - conditional traps - hardware (registers) - mmu (changes page protections) - All non-native operations are translated into evaluable expressions by other modules. Like changing register values and so on - Do we should place some callbacks for this kind of ops? - We need to make this work also remotely - r_debug can handle the remoteness of the debugger backend. - r_io can do it also - Watchpoints and its exception should be handled here - watchpoint expressions should be handled by using the r_num stuff - Hardware breakpoints require access to registers, or pid/tid this is... the debugger backend. For those, the debugger backend should fill a callback to manage them. - if the debugger breakpoint handler does not manages the breakpoint type, r_bp must do it with r_io storing and loading bp bytes. * Do we need the plugin API to define new breakpoints and so on?