radare2/libr/bp/README
pancake 56678feaed * Initial working implementation of software breakpoints
- 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)
2010-01-21 02:38:52 +01:00

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?