[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.


--- 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   
+Priority: Wishlist
+Component: misc
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: mass@akuma.org               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+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
+then ran the following from mcs/class/corlib :
+root@jin:~/src/mono/mcs/class/corlib# MONO_PATH=".:$MONO_PATH" gdb mono
+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.
+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)
+(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