* Implement dbg.bep in r2

* Sync r_bin vapi with changes in r_bin.h
This commit is contained in:
pancake 2010-11-18 22:57:28 +01:00
parent eb3de0a3f4
commit fdaac4c171
3 changed files with 28 additions and 4 deletions

5
TODO
View File

@ -19,10 +19,9 @@ Debugger
pancake
-------
* Implement software stepping (with code analysis+ breakpoints)
* Implement dbg.bep
- in r_core? in r_debug after attach? maybe only in r2 binr?
* Implement dbg.bep - in r_core? in r_debug after attach? maybe only in r2 binr?
- must be refined.. and look for better names
* fork/clone child . inject code to create new threads or pids
- dpn dptn
* Functions in r_util to get lil/big ut8,16,32 from ut8*
- already done..must find better names probably
* merge asm.arch vm.arch

View File

@ -195,6 +195,23 @@ int main(int argc, char **argv) {
r_core_cmdf (&r, "dpa %d", r.file->fd);
r_core_cmdf (&r, "dp=%d", r.file->fd);
r_core_cmd (&r, ".dr*", 0);
/* honor dbg.bep */
{
const char *bep = r_config_get (r.config, "dbg.bep");
if (bep) {
// TODO: add support for init, fini, ..
// TODO: maybe use "dcu %s".printf (bep);
if (!strcmp (bep, "loader")) {
/* do nothing here */
} else
if (!strcmp (bep, "main")) {
r_core_cmd (&r, "dcu main", 0);
} else
if (!strcmp (bep, "entry")) {
r_core_cmd (&r, "dcu entry0", 0);
}
}
}
r_core_cmd (&r, "sr pc", 0);
r_config_set (r.config, "cmd.prompt", ".dr*");
r_config_set (r.config, "cmd.vprompt", ".dr*");

View File

@ -4,6 +4,14 @@ namespace Radare {
[Compact]
[CCode (cheader_filename="r_bin.h,r_list.h,r_types_base.h", cname="struct r_bin_t", free_function="r_bin_free", cprefix="r_bin_")]
public class RBin {
[CCode (cprefix="R_BIN_SYM_")]
public enum Sym {
ENTRY,
INIT,
MAIN,
FINI,
LAST
}
public const string file;
public int narch;
public RBin.Arch curarch;
@ -19,7 +27,7 @@ namespace Radare {
public int set_archidx(int idx);
public int list();
public uint64 get_baddr();
public RBin.Addr get_main();
public RBin.Addr get_sym(int sym); // XXX: use RBin.Sym here ?
public RList<RBin.Addr> get_entries();
public RList<RBin.Field> get_fields();
public RList<RBin.Import> get_imports();