rizin/libr/debug
pancake 2ca850007f * Major refactoring of r_io (api has changed)
- filedescriptor is only defined by r_io_set()
  - the rest of functions just take one argument less
  - there are not enought filedescriptor changes to force fd resolution all the time
* Fix memory leak in r_io_open
  - Better error management
  - Fix Makefile warnings in libr/io/p
* Added read_at and write_at helper functions
* Random indentation fixups
* Added shm.mk and malloc.mk
* More useless work for r_iter
2009-09-02 00:10:51 +00:00
..
p * Major refactoring of r_io (api has changed) 2009-09-02 00:10:51 +00:00
t * Major refactoring of r_io (api has changed) 2009-09-02 00:10:51 +00:00
bp.c * Change the name of some types 2009-07-08 13:49:55 +02:00
debug.c * Implement static plugins for r_io 2009-08-22 03:11:33 +00:00
handle.c * Add support for static plugins to r_debug 2009-08-22 01:54:24 +00:00
Makefile * Add support for static plugins to r_debug 2009-08-22 01:54:24 +00:00
pid.c * Fix breakpoint management issues in r_bp 2009-04-15 12:01:12 +02:00
README * Lot of random work on multiple fronts 2009-02-17 00:09:40 +01:00
reg.c * Change the name of some types 2009-07-08 13:49:55 +02:00
regset.c * Initial implementation of r_asm_fastcall() 2009-08-14 00:37:18 +00:00

r_debug
=======

  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)