fix latest covs

This commit is contained in:
alvaro_fe 2016-03-24 17:28:41 +01:00 committed by Álvaro Felipe Melchor
parent c451637967
commit 27459b7deb
3 changed files with 39 additions and 26 deletions

View file

@ -1142,23 +1142,24 @@ R_API void r_core_anal_coderefs(RCore *core, ut64 addr, int fmt) {
RAnalFunction *fcni;
RAnalRef *fcnr;
if (fmt==2) r_cons_printf ("[");
if (fmt == 2)
r_cons_printf ("[");
first = 0;
r_list_foreach (core->anal->fcns, iter, fcni) {
if (addr != 0 && addr != fcni->addr)
continue;
if (fmt==0) {
if (fmt == 0) {
r_cons_printf ("0x%08"PFMT64x"\n", fcni->addr);
} else if (fmt==2) {
} else if (fmt == 2) {
//r_cons_printf ("{\"name\":\"%s\", \"size\":%d,\"imports\":[", fcni->name, fcni->size);
if (hideempty && r_list_length (fcni->refs)==0)
if (hideempty && r_list_length (fcni->refs) == 0)
continue;
if (usenames)
r_cons_printf ("%s{\"name\":\"%s\", \"size\":%d,\"imports\":[",
first?",":"",fcni->name, fcni->size);
first?",":"", fcni->name, fcni->size);
else
r_cons_printf ("%s{\"name\":\"0x%08"PFMT64x"\", \"size\":%d,\"imports\":[",
first?",":"",fcni->addr, fcni->size);
first?",":"", fcni->addr, fcni->size);
first = 1;
}
first2 = 0;
@ -1174,7 +1175,7 @@ R_API void r_core_anal_coderefs(RCore *core, ut64 addr, int fmt) {
}
}
if (!is_html && !showhdr) {
if (fmt==1) {
if (fmt == 1) {
r_cons_printf ("digraph code {\n"
"\tgraph [bgcolor=white];\n"
"\tnode [color=lightgray, style=filled shape=box"
@ -1186,34 +1187,38 @@ R_API void r_core_anal_coderefs(RCore *core, ut64 addr, int fmt) {
// TODO: display only code or data refs?
RFlagItem *flag = r_flag_get_i (core->flags, fcnr->addr);
if (fmt == 1) {
if (flag && flag->name) {
r_cons_printf ("\t\"0x%08"PFMT64x"\" -> \"0x%08"PFMT64x"\" "
"[label=\"%s\" color=\"%s\" URL=\"%s/0x%08"PFMT64x"\"];\n",
fcni->addr, fcnr->addr, flag?flag->name:"",
(fcnr->type==R_ANAL_REF_TYPE_CODE ||
fcnr->type==R_ANAL_REF_TYPE_CALL)?"green":"red",
flag? flag->name: "", fcnr->addr);
r_cons_printf ("\t\"0x%08"PFMT64x"\" "
"[label=\"%s\" URL=\"%s/0x%08"PFMT64x"\"];\n",
fcnr->addr, flag? flag->name: fr->name,
flag? flag->name: "", fcnr->addr);
}
} else if (fmt==2) {
if (flag && flag->name) {
r_cons_printf ("\t\"0x%08"PFMT64x"\" -> \"0x%08"PFMT64x"\" "
"[label=\"%s\" color=\"%s\" URL=\"%s/0x%08"PFMT64x"\"];\n",
fcni->addr, fcnr->addr, flag->name,
(fcnr->type==R_ANAL_REF_TYPE_CODE ||
fcnr->type==R_ANAL_REF_TYPE_CALL)?"green":"red",
flag->name, fcnr->addr);
r_cons_printf ("\t\"0x%08"PFMT64x"\" "
"[label=\"%s\" URL=\"%s/0x%08"PFMT64x"\"];\n",
fcnr->addr, flag->name,
flag->name, fcnr->addr);
}
} else if (fmt == 2) {
if (fr) {
if (!hideempty || (hideempty && r_list_length (fr->refs)>0)) {
if (usenames)
r_cons_printf ("%s\"%s\"", first2?",":"", fr->name);
else r_cons_printf ("%s\"0x%08"PFMT64x"\"", first2?",":"", fr->addr);
else
r_cons_printf ("%s\"0x%08"PFMT64x"\"", first2?",":"", fr->addr);
first2 = 1;
}
}
} else r_cons_printf (" - 0x%08"PFMT64x" (%c)\n", fcnr->addr, fcnr->type);
} else {
r_cons_printf (" - 0x%08"PFMT64x" (%c)\n", fcnr->addr, fcnr->type);
}
}
if (fmt==2) r_cons_printf ("]}");
}
if (showhdr && fmt==1)
r_cons_printf ("}\n");
if (fmt==2) r_cons_printf ("]\n");
if (fmt == 2)
r_cons_printf ("]\n");
}
static void fcn_list_bbs(RAnalFunction *fcn) {

View file

@ -1569,7 +1569,7 @@ static void cmd_print_pv(RCore *core, const char *input) {
}
/* fallthrough */
case ' ':
for (i=0;stack[i]; i++) {
for (i = 0; stack[i]; i++) {
if (!strcmp (input+1, stack[i])) {
if (type == 'z') {
r_core_cmdf (core, "ps @ [`drn sp`+%d]", n * i);
@ -1580,10 +1580,14 @@ static void cmd_print_pv(RCore *core, const char *input) {
}
break;
case 'j':
{
char *str = r_core_cmd_str (core, "ps @ [$$]");
r_cons_printf ("{\"value\":%"PFMT64d",\"string\":\"%s\"}\n",
r_num_get (core->num, "[$$]"),
r_core_cmd_str (core, "ps @ [$$]")
str
);
free (str);
}
break;
case '?':
eprintf ("Usage: pv[z] [ret arg#]\n");

View file

@ -187,6 +187,7 @@ R_API int r_core_search_prelude(RCore *core, ut64 from, ut64 to, const ut8 *buf,
// TODO: handle sections ?
if (from >= to) {
eprintf ("aap: Invalid search range 0x%08"PFMT64x" - 0x%08"PFMT64x"\n", from, to);
free (b);
return 0;
}
r_search_reset (core->search, R_SEARCH_KEYWORD);
@ -287,10 +288,13 @@ R_API int r_core_search_preludes(RCore *core) {
default:
eprintf ("ap: Unsupported bits: %d\n", bits);
}
} else eprintf ("ap: Unsupported asm.arch and asm.bits\n");
} else {
eprintf ("ap: Unsupported asm.arch and asm.bits\n");
}
eprintf ("done\n");
}
fc1 = count_functions (core);
r_list_free (list);
eprintf ("Analyzed %d functions based on preludes\n", fc1 - fc0);
return ret;
}