radare2/libr/debug
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
..
p * Add some missing ${EXT_EXE} in t/ 2010-01-19 11:25:17 +01:00
t * Fix build for linux-mips 2010-01-15 16:24:06 -05:00
debug.c * Initial working implementation of software breakpoints 2010-01-21 02:38:52 +01:00
handle.c * Add some missing ${EXT_EXE} in t/ 2010-01-19 11:25:17 +01:00
Makefile * Initial working implementation of software breakpoints 2010-01-21 02:38:52 +01:00
mem.c * Initial working implementation of software breakpoints 2010-01-21 02:38:52 +01:00
pid.c * Initial r_io_bind'ization of r_bin .. not yet working 2009-09-10 20:51:34 +00:00
README * Add some missing ${EXT_EXE} in t/ 2010-01-19 11:25:17 +01:00
reg.c * Add some missing ${EXT_EXE} in t/ 2010-01-19 11:25:17 +01:00

Debugger API for radare2
========================

We need to connect multiple pieces...

debugger engine: vm, qemu, bochs, ptrace, mach, w32dbg...

controlflow commands: (should be splitted in two layers)

 - continue -- low level
 - step     -- low level
 - trace   --- high level one
 - ...

 the control flow commands depend on other stuff to decide
 how to work..this is for example if the arch doesnt supports
 continuation, we should provide a step based continue. The
 same when a watchpoint is activated and the arch didnt
 supports hardware regs for this purpose.

We also need a load/store/dump/restore functions to move the
program from one engine to another (ptrace -> qemu).. we should
provide a way for all this operations between them.

[continue]
    |--- check if bp api allows us to continue or we should step into..
    |--- check if debug plugin supports continue

[getregs]
    |--- r_reg give us a list of registers
    |    - dr (show bitsize debug registers) // 32 by default
    |    - dr 32 (show 32 bit debug registers) // depends on size
    |    - dr:eax (show 'eax' register value)
    |    - dr:al  (show 8bit register 'al')
    |    - dr eax=33 (set 'eax' register value)