mirror of
https://github.com/radareorg/radare2.git
synced 2025-03-03 03:35:37 +00:00
Fix #2799 - Add drpj
command
This commit is contained in:
parent
142bf2172f
commit
30a0283733
@ -1119,14 +1119,57 @@ void cmd_anal_reg(RCore *core, const char *str) {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'p':
|
||||
case 'p': // drp
|
||||
if (!str[1]) {
|
||||
if (core->dbg->reg->reg_profile_str) {
|
||||
//core->anal->reg = core->dbg->reg;
|
||||
r_cons_printf ("%s\n", core->dbg->reg->reg_profile_str);
|
||||
//r_cons_printf ("%s\n", core->anal->reg->reg_profile);
|
||||
} else eprintf ("No register profile defined. Try 'dr.'\n");
|
||||
} else r_reg_set_profile (core->dbg->reg, str+2);
|
||||
} else {
|
||||
eprintf ("No register profile defined. Try 'dr.'\n");
|
||||
}
|
||||
} else if (str[1] == 'j') {
|
||||
// drpj
|
||||
RListIter *iter;
|
||||
RRegItem *r;
|
||||
int i;
|
||||
int first = 1;
|
||||
static const char *types[R_REG_TYPE_LAST+1] = {
|
||||
"gpr", "drx", "fpu", "mmx", "xmm", "flg", "seg", NULL
|
||||
};
|
||||
static const char *roles[R_REG_NAME_LAST+1] = {
|
||||
"pc", "sp", "sr", "bp", "ao", "a1",
|
||||
"a2", "a3", "a4", "a5", "a6", "zf",
|
||||
"sf", "cf", "of", "sb", NULL
|
||||
};
|
||||
r_cons_printf ("{\"alias_info\":[");
|
||||
for (i = 0; i < R_REG_NAME_LAST; i++) {
|
||||
if (core->dbg->reg->name[i]) {
|
||||
if (!first) r_cons_printf (",");
|
||||
r_cons_printf ("{\"role\":%d,", i);
|
||||
r_cons_printf ("\"role_str\":\"%s\",", roles[i]);
|
||||
r_cons_printf ("\"reg\":\"%s\"}",
|
||||
core->dbg->reg->name[i]);
|
||||
first = 0;
|
||||
}
|
||||
}
|
||||
r_cons_printf ("],\"reg_info\":[");
|
||||
first = 1;
|
||||
for (i = 0; i < R_REG_TYPE_LAST; i++) {
|
||||
r_list_foreach (core->dbg->reg->regset[i].regs, iter, r) {
|
||||
if (!first) r_cons_printf (",");
|
||||
r_cons_printf ("{\"type\":%d,", r->type);
|
||||
r_cons_printf ("\"type_str\":\"%s\",", types[r->type]);
|
||||
r_cons_printf ("\"name\":\"%s\",", r->name);
|
||||
r_cons_printf ("\"size\":%d,", r->size);
|
||||
r_cons_printf ("\"offset\":%d}", r->offset);
|
||||
first = 0;
|
||||
}
|
||||
}
|
||||
r_cons_printf ("]}");
|
||||
} else {
|
||||
r_reg_set_profile (core->dbg->reg, str+2);
|
||||
}
|
||||
break;
|
||||
case 't': // "drt"
|
||||
for (i=0; (name=r_reg_get_type (i)); i++)
|
||||
|
Loading…
x
Reference in New Issue
Block a user