mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-03 12:12:06 +00:00
syscalls: print syscall numbers in hex instead of dec to accomodate macos x86 64
This commit is contained in:
parent
f5ca226523
commit
b0547831f1
@ -1205,6 +1205,10 @@ static void cmd_anal_trampoline(RCore *core, const char *input) {
|
||||
}
|
||||
}
|
||||
|
||||
static const char *syscallNumber(int n) {
|
||||
return sdb_fmt (n > 1000 ? "0x%x" : "%d", n);
|
||||
}
|
||||
|
||||
R_API char *cmd_syscall_dostr(RCore *core, int n) {
|
||||
char *res = NULL;
|
||||
int i;
|
||||
@ -1218,10 +1222,11 @@ R_API char *cmd_syscall_dostr(RCore *core, int n) {
|
||||
}
|
||||
RSyscallItem *item = r_syscall_get (core->anal->syscall, n, -1);
|
||||
if (!item) {
|
||||
res = r_str_appendf (res, "%d = unknown ()", n);
|
||||
res = r_str_appendf (res, "%s = unknown ()", syscallNumber (n));
|
||||
return res;
|
||||
}
|
||||
res = r_str_appendf (res, "%d = %s (", item->num, item->name);
|
||||
|
||||
res = r_str_appendf (res, "%s = %s (", syscallNumber (item->num), item->name);
|
||||
// TODO: move this to r_syscall
|
||||
//TODO replace the hardcoded CC with the sdb ones
|
||||
for (i = 0; i < item->args; i++) {
|
||||
@ -5118,13 +5123,14 @@ static void cmd_anal_syscall(RCore *core, const char *input) {
|
||||
if (input[2] == ' ') {
|
||||
if (!isalpha (input[3]) && (n = r_num_math (num, input + 3)) >= 0 ) {
|
||||
si = r_syscall_get (core->anal->syscall, n, -1);
|
||||
if (si)
|
||||
r_cons_printf (".equ SYS_%s %d\n", si->name, n);
|
||||
if (si) {
|
||||
r_cons_printf (".equ SYS_%s %s\n", si->name, syscallNumber (n));
|
||||
}
|
||||
else eprintf ("Unknown syscall number\n");
|
||||
} else {
|
||||
n = r_syscall_get_num (core->anal->syscall, input + 3);
|
||||
if (n != -1) {
|
||||
r_cons_printf (".equ SYS_%s %d\n", input + 3, n);
|
||||
r_cons_printf (".equ SYS_%s %s\n", input + 3, syscallNumber (n));
|
||||
} else {
|
||||
eprintf ("Unknown syscall name\n");
|
||||
}
|
||||
@ -5132,8 +5138,8 @@ static void cmd_anal_syscall(RCore *core, const char *input) {
|
||||
} else {
|
||||
list = r_syscall_list (core->anal->syscall);
|
||||
r_list_foreach (list, iter, si) {
|
||||
r_cons_printf (".equ SYS_%s %d\n",
|
||||
si->name, (ut32)si->num);
|
||||
r_cons_printf (".equ SYS_%s %s\n",
|
||||
si->name, syscallNumber (si->num));
|
||||
}
|
||||
r_list_free (list);
|
||||
}
|
||||
@ -5141,13 +5147,14 @@ static void cmd_anal_syscall(RCore *core, const char *input) {
|
||||
if (input[1] == ' ') {
|
||||
if (!isalpha (input[2]) && (n = r_num_math (num, input + 2)) >= 0 ) {
|
||||
si = r_syscall_get (core->anal->syscall, n, -1);
|
||||
if (si)
|
||||
r_cons_printf ("#define SYS_%s %d\n", si->name, n);
|
||||
if (si) {
|
||||
r_cons_printf ("#define SYS_%s %s\n", si->name, syscallNumber (n));
|
||||
}
|
||||
else eprintf ("Unknown syscall number\n");
|
||||
} else {
|
||||
n = r_syscall_get_num (core->anal->syscall, input + 2);
|
||||
if (n != -1) {
|
||||
r_cons_printf ("#define SYS_%s %d\n", input + 2, n);
|
||||
r_cons_printf ("#define SYS_%s %s\n", input + 2, syscallNumber (n));
|
||||
} else {
|
||||
eprintf ("Unknown syscall name\n");
|
||||
}
|
||||
@ -5156,7 +5163,7 @@ static void cmd_anal_syscall(RCore *core, const char *input) {
|
||||
list = r_syscall_list (core->anal->syscall);
|
||||
r_list_foreach (list, iter, si) {
|
||||
r_cons_printf ("#define SYS_%s %d\n",
|
||||
si->name, (ut32)si->num);
|
||||
si->name, syscallNumber (si->num));
|
||||
}
|
||||
r_list_free (list);
|
||||
}
|
||||
@ -5175,7 +5182,7 @@ static void cmd_anal_syscall(RCore *core, const char *input) {
|
||||
} else {
|
||||
n = r_syscall_get_num (core->anal->syscall, input + 2);
|
||||
if (n != -1) {
|
||||
r_cons_printf ("%d\n", n);
|
||||
r_cons_printf ("%s\n", syscallNumber (n));
|
||||
} else {
|
||||
eprintf ("Unknown syscall name\n");
|
||||
}
|
||||
@ -5183,8 +5190,8 @@ static void cmd_anal_syscall(RCore *core, const char *input) {
|
||||
} else {
|
||||
list = r_syscall_list (core->anal->syscall);
|
||||
r_list_foreach (list, iter, si) {
|
||||
r_cons_printf ("%s = 0x%02x.%u\n",
|
||||
si->name, (ut32)si->swi, (ut32)si->num);
|
||||
r_cons_printf ("%s = 0x%02x.%s\n",
|
||||
si->name, si->swi, syscallNumber (si->num));
|
||||
}
|
||||
r_list_free (list);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user