[Mono-bugs] [Bug 48283][Wis] New - crash while running corlib unit tests
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Tue, 9 Sep 2003 02:21:03 -0400 (EDT)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by mass@akuma.org.
http://bugzilla.ximian.com/show_bug.cgi?id=48283
--- shadow/48283 2003-09-09 02:21:03.000000000 -0400
+++ shadow/48283.tmp.6930 2003-09-09 02:21:03.000000000 -0400
@@ -0,0 +1,114 @@
+Bug#: 48283
+Product: Mono/Runtime
+Version: unspecified
+OS: GNU/Linux [Other]
+OS Details: Debian unstable
+Status: NEW
+Resolution:
+Severity:
+Priority: Wishlist
+Component: misc
+AssignedTo: mono-bugs@ximian.com
+ReportedBy: mass@akuma.org
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: crash while running corlib unit tests
+
+Please fill in this template when reporting a bug, unless you know what you
+are doing.
+Description of Problem:
+
+Crashes occur while trying to run the mcs unit tests
+
+unit tests are from CVS HEAD (on todays date, 20030909), this problem has
+shown up for a few months now (although this is the first I've been able to
+get gdb to behave).
+
+Steps to reproduce the problem:
+1. comment out the Mono.Math classes from unit tests (the compiler gives
+class not found errors about these tests)
+2. run tests under GDB
+3. watch the fun
+
+I created a dbg.inc file which has the following contents:
+
+handle SIGSTOP SIGPWR SIGXCPU nostop noprint
+break main
+run --debug ../../class/lib/nunit-console.exe corlib_test.dll
+break sigsegv_signal_handler
+clear
+c
+
+then ran the following from mcs/class/corlib :
+
+root@jin:~/src/mono/mcs/class/corlib# MONO_PATH=".:$MONO_PATH" gdb mono
+--command=dbg.inc
+GNU gdb 5.3.90_2003-08-24-cvs-debian
+Copyright 2003 Free Software Foundation, Inc.
+GDB is free software, covered by the GNU General Public License, and you are
+welcome to change it and/or distribute copies of it under certain conditions.
+Type "show copying" to see the conditions.
+There is absolutely no warranty for GDB. Type "show warranty" for details.
+This GDB was configured as "i386-linux"...
+Breakpoint 1 at 0x8048ec4: file main.c, line 6.
+[New Thread 1077491136 (LWP 19660)]
+[Switching to Thread 1077491136 (LWP 19660)]
+
+Breakpoint 1, main (argc=4, argv=0xbffff994) at main.c:6
+6 return mono_main (argc, argv);
+Breakpoint 2 at 0x40056e9e: file mini.c, line 7167.
+Detaching after fork from child process 19724.
+[New Thread 1085230032 (LWP 19728)]
+[New Thread 1091988432 (LWP 19746)]
+NUnit version 2.0.9
+Copyright (C) 2002 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
+Copyright (C) 2000-2002 Philip Craig.
+All Rights Reserved.
+.F.F.F.F.F................
+Program received signal SIGSEGV, Segmentation fault.
+[Switching to Thread 1091988432 (LWP 19746)]
+0x08d3ec6f in ?? ()
+(gdb) t a a bt
+
+Thread 3 (Thread 1091988432 (LWP 19746)):
+#0 0x08d3ec6f in ?? ()
+
+Thread 2 (Thread 1085230032 (LWP 19728)):
+#0 0xffffd41a in ?? ()
+#1 0x40af49c8 in ?? ()
+#2 0x00000012 in ?? ()
+
+Thread 1 (Thread 1077491136 (LWP 19660)):
+#0 0xffffd41a in ?? ()
+#1 0xbffff758 in ?? ()
+#2 0x00000013 in ?? ()
+#0 0x08d3ec6f in ?? ()
+(gdb) call print_method_from_ip($pc)
+IP 0x8d3ec6f at offset 0x33 of method 00 System.Array:GetIntArray (long[])
+(0x8d3ec3c 0x8d3ed75)
+/home/mass/src/mono/mcs/class/corlib/System/Array.cs:442
+(gdb) x/20i 0x8d3ec3c
+0x8d3ec3c: push %ebp
+0x8d3ec3d: mov %esp,%ebp
+0x8d3ec3f: push %ebx
+0x8d3ec40: push %esi
+0x8d3ec41: sub $0x14,%esp
+0x8d3ec44: movl $0x0,0xfffffff4(%ebp)
+0x8d3ec4b: movl $0x0,0xfffffff0(%ebp)
+0x8d3ec52: mov $0x0,%ebx
+0x8d3ec57: movl $0x0,0xffffffec(%ebp)
+0x8d3ec5e: movl $0x0,0xffffffe8(%ebp)
+0x8d3ec65: movl $0x0,0xffffffe4(%ebp)
+0x8d3ec6c: mov 0x8(%ebp),%eax
+0x8d3ec6f: mov 0xc(%eax),%eax
+0x8d3ec72: mov %eax,0xfffffff4(%ebp)
+0x8d3ec75: pushl 0xfffffff4(%ebp)
+0x8d3ec78: push $0x85b30dc
+0x8d3ec7d: call 0x400a942a <mono_array_new_specific>
+0x8d3ec82: add $0x8,%esp
+0x8d3ec85: mov %eax,%esi
+0x8d3ec87: mov %esi,0xfffffff0(%ebp)
+(gdb) print *(int*)($ebp + 0x8)
+$1 = 0