From 78bbf452db849a109d0048db0af0844f9b2bcd13 Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Thu, 1 Jul 2010 11:15:32 +0000 Subject: [PATCH] Don't assert when trying to show a Darwin syscall number in an unknown syscall class. This stops Valgrind asserting when doing --trace-syscalls=yes and a sys_syscall is encountered, in 64-bit mode. I don't know if this is a correct fix or whether it merely hides symptoms of logic handling problems for sys_syscall on Darwin. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11203 --- coregrind/m_vkiscnums.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/coregrind/m_vkiscnums.c b/coregrind/m_vkiscnums.c index adb845471..2cecf2c5a 100644 --- a/coregrind/m_vkiscnums.c +++ b/coregrind/m_vkiscnums.c @@ -1163,12 +1163,11 @@ Char* VG_(sysnum_string)(Word sysnum, SizeT n_buf, Char* buf) { Char* classname = NULL; switch (VG_DARWIN_SYSNO_CLASS(sysnum)) { - case VG_DARWIN_SYSCALL_CLASS_MACH: classname = "mach"; break; - case VG_DARWIN_SYSCALL_CLASS_UNIX: classname = "unix"; break; - case VG_DARWIN_SYSCALL_CLASS_MDEP: classname = "mdep"; break; - case VG_DARWIN_SYSCALL_CLASS_DIAG: classname = "diag"; break; - default: - VG_(core_panic)("unknown Darwin sysnum class"); + case VG_DARWIN_SYSCALL_CLASS_MACH: classname = "mach"; break; + case VG_DARWIN_SYSCALL_CLASS_UNIX: classname = "unix"; break; + case VG_DARWIN_SYSCALL_CLASS_MDEP: classname = "mdep"; break; + case VG_DARWIN_SYSCALL_CLASS_DIAG: classname = "diag"; break; + default: classname = "UNKNOWN"; break; } VG_(snprintf)(buf, n_buf, "%s:%3ld", classname, VG_DARWIN_SYSNO_INDEX(sysnum));