Loading bsd-user/freebsd/strace.list +19 −2 Original line number Diff line number Diff line { TARGET_FREEBSD_NR___getcwd, "__getcwd", NULL, NULL, NULL }, /* * FreeBSD strace list * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see <http://www.gnu.org/licenses/>. */ { TARGET_FREEBSD_NR___semctl, "__semctl", NULL, NULL, NULL }, { TARGET_FREEBSD_NR___syscall, "__syscall", NULL, NULL, NULL }, { TARGET_FREEBSD_NR___sysctl, "__sysctl", NULL, NULL, NULL }, { TARGET_FREEBSD_NR___sysctl, "__sysctl", NULL, print_sysctl, NULL }, { TARGET_FREEBSD_NR_accept, "accept", "%s(%d,%#x,%#x)", NULL, NULL }, { TARGET_FREEBSD_NR_access, "access", "%s(\"%s\",%#o)", NULL, NULL }, { TARGET_FREEBSD_NR_acct, "acct", NULL, NULL, NULL }, Loading bsd-user/strace.c +22 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,28 @@ int do_strace; * Utility functions */ static void print_sysctl(const struct syscallname *name, abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6) { uint32_t i; int32_t *namep; gemu_log("%s({ ", name->name); namep = lock_user(VERIFY_READ, arg1, sizeof(int32_t) * arg2, 1); if (namep) { int32_t *p = namep; for (i = 0; i < (uint32_t)arg2; i++) { gemu_log("%d ", tswap32(*p++)); } unlock_user(namep, arg1, 0); } gemu_log("}, %u, 0x" TARGET_ABI_FMT_lx ", 0x" TARGET_ABI_FMT_lx ", 0x" TARGET_ABI_FMT_lx ", 0x" TARGET_ABI_FMT_lx ")", (uint32_t)arg2, arg3, arg4, arg5, arg6); } static void print_execve(const struct syscallname *name, abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6) Loading Loading
bsd-user/freebsd/strace.list +19 −2 Original line number Diff line number Diff line { TARGET_FREEBSD_NR___getcwd, "__getcwd", NULL, NULL, NULL }, /* * FreeBSD strace list * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see <http://www.gnu.org/licenses/>. */ { TARGET_FREEBSD_NR___semctl, "__semctl", NULL, NULL, NULL }, { TARGET_FREEBSD_NR___syscall, "__syscall", NULL, NULL, NULL }, { TARGET_FREEBSD_NR___sysctl, "__sysctl", NULL, NULL, NULL }, { TARGET_FREEBSD_NR___sysctl, "__sysctl", NULL, print_sysctl, NULL }, { TARGET_FREEBSD_NR_accept, "accept", "%s(%d,%#x,%#x)", NULL, NULL }, { TARGET_FREEBSD_NR_access, "access", "%s(\"%s\",%#o)", NULL, NULL }, { TARGET_FREEBSD_NR_acct, "acct", NULL, NULL, NULL }, Loading
bsd-user/strace.c +22 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,28 @@ int do_strace; * Utility functions */ static void print_sysctl(const struct syscallname *name, abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6) { uint32_t i; int32_t *namep; gemu_log("%s({ ", name->name); namep = lock_user(VERIFY_READ, arg1, sizeof(int32_t) * arg2, 1); if (namep) { int32_t *p = namep; for (i = 0; i < (uint32_t)arg2; i++) { gemu_log("%d ", tswap32(*p++)); } unlock_user(namep, arg1, 0); } gemu_log("}, %u, 0x" TARGET_ABI_FMT_lx ", 0x" TARGET_ABI_FMT_lx ", 0x" TARGET_ABI_FMT_lx ", 0x" TARGET_ABI_FMT_lx ")", (uint32_t)arg2, arg3, arg4, arg5, arg6); } static void print_execve(const struct syscallname *name, abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6) Loading