]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Don't assert when trying to show a Darwin syscall number in an unknown
authorJulian Seward <jseward@acm.org>
Thu, 1 Jul 2010 11:15:32 +0000 (11:15 +0000)
committerJulian Seward <jseward@acm.org>
Thu, 1 Jul 2010 11:15:32 +0000 (11:15 +0000)
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

index adb84547126526b268c15c6acd0061474d38912f..2cecf2c5a1def4419c989786ec1a48d717699079 100644 (file)
@@ -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));