* Fix build

This commit is contained in:
pancake 2011-02-02 13:23:44 +01:00
parent 965a577af2
commit 1f953579ea
4 changed files with 11 additions and 14 deletions

View File

@ -24,8 +24,8 @@ R_API RAnal *r_anal_new() {
RAnalPlugin *static_plugin;
RAnal *anal = R_NEW (RAnal);
if (anal) {
anal->syscall = r_syscall_new ();
memset (anal, 0, sizeof (RAnal));
anal->syscall = r_syscall_new ();
anal->reg = NULL;
anal->bbs = r_anal_bb_list_new ();
anal->fcns = r_anal_fcn_list_new ();

View File

@ -36,28 +36,26 @@ R_API char *r_anal_cc_to_string (RAnal *anal, RAnalCC* cc) {
RAnalFcn *fcn;
char str[1024], buf[32];
int i;
int eax = 0; // eax = arg0
str[0] = 0;
switch (cc->type) {
case R_ANAL_CC_TYPE_FASTCALL: // INT
#if 0
int eax = 0; // eax = arg0
//int eax = (int)r_vm_reg_get (core->vm, core->vm->cpu.ret); //"eax");
si = r_syscall_get (core->syscall, eax, (int)cc->jump);
si = r_syscall_get (anal->syscall, eax, (int)cc->jump);
if (si) {
//DEBUG r_cons_printf (" ; sc[0x%x][%d]=%s(", (int)analop.value, eax, si->name);
snprintf (str, "%s (", si->name);
snprintf (str, sizeof (str), "%s (", si->name);
for (i=0; i<si->args; i++) {
//const char *reg = r_asm_fastcall (core->assembler, i+1, si->args);
sprintf (buf, "0x%"PFMT64x, r_vm_reg_get (core->vm, reg));
const char *reg = r_syscall_reg (anal->syscall, i+1, si->args);
sprintf (buf, "(%s)", reg);
//TODO sprintf (buf, "0x%"PFMT64x, 0LL); //r_vm_reg_get (core->vm, reg));
strcat (str, buf);
if (i<si->args-1)
strcat (str, ",");
}
r_cons_printf (")");
strcat (str, ")");
} else snprintf (str, sizeof (str), "syscall[0x%x][%d]=?", (int)cc->jump, eax);
#endif
strcpy (str, "syscall(TODO)\n");
break;
case R_ANAL_CC_TYPE_STDCALL: // CALL
// if (analop.jump != UT64_MAX) {
@ -67,7 +65,7 @@ R_API char *r_anal_cc_to_string (RAnal *anal, RAnalCC* cc) {
if (fcn) cc->nargs = (fcn->nargs>cc->nargs?cc->nargs:fcn->nargs);
for (i=0; i<cc->nargs; i++) {
snprintf (buf, sizeof (buf),
(cc->args[i]<1024)?"%"PFMT64d:"0x%"PFMT64x,
(cc->args[cc->nargs-i]>1024)?"%"PFMT64d:"0x%"PFMT64x,
cc->args[cc->nargs-i]);
strcat (str, buf);
if (i<cc->nargs-1) strcat (str, ", ");

View File

@ -44,12 +44,10 @@ static void printoffset(ut64 off, int show_color) {
/* TODO: move to print/disasm.c */
static void r_print_disasm(RPrint *p, RCore *core, ut64 addr, ut8 *buf, int len, int l) {
RAnalCC cc = {0};
RAnalFcn *fcn, *f = NULL;
RAnalFcn *f = NULL;
int ret, idx, i, j, k, lines, ostackptr, stackptr = 0;
int counter = 0;
int middle = 0;
int nargs = 0;
ut64 args[32];
char str[128];
char *line, *comment, *opstr, *osl = NULL; // old source line
RAsmAop asmop;

View File

@ -66,6 +66,7 @@ R_API RSyscallItem *r_syscall_get(RSyscall *ctx, int num, int swi);
R_API int r_syscall_get_num(RSyscall *ctx, const char *str);
R_API RSyscallItem *r_syscall_get_n(RSyscall *ctx, int n); // broken iterator.. must remove
R_API const char *r_syscall_get_i(RSyscall *ctx, int num, int swi); // XXX const char *
R_API const char *r_syscall_reg(RSyscall *s, int idx, int num);
R_API void r_syscall_list(RSyscall *ctx);
#endif