mirror of
https://github.com/radareorg/radare2.git
synced 2024-12-06 12:38:34 +00:00
56678feaed
- Many API rethink for the r_bp/r_reg/r_debug bizarre triangle love - Support for recoil for software breakpoints - Some debugging printfs.. next step, hardware and mmu breakpoints * r_bp_restore is now used correctly from r_debug - sw bps are written when returning to proces and erased when back to dbg * Fix build of bp plugins on w32/osx * Add support to 'repeat' commands from r_core - 3ds ; same as 'ds&&ds&&ds' ; perform 3 steps * Fix a memory leak in rBreakpointItem constructor * Fix some possible segfaults in r_debug * Fix double definition cause segfault in r_reg for r_reg_types array * Fix rLibrary/r_lib typedef class name (fixes valaswig compilation)
33 lines
1.2 KiB
Plaintext
33 lines
1.2 KiB
Plaintext
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?
|