|
From: <sv...@va...> - 2010-07-01 11:15:43
|
Author: sewardj
Date: 2010-07-01 12:15:32 +0100 (Thu, 01 Jul 2010)
New Revision: 11203
Log:
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.
Modified:
trunk/coregrind/m_vkiscnums.c
Modified: trunk/coregrind/m_vkiscnums.c
===================================================================
--- trunk/coregrind/m_vkiscnums.c 2010-07-01 10:47:23 UTC (rev 11202)
+++ trunk/coregrind/m_vkiscnums.c 2010-07-01 11:15:32 UTC (rev 11203)
@@ -1163,12 +1163,11 @@
{
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));
|