This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/49230] please provide workaround for setjmp/longjmp in mingw32
- From: "jojelino at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 29 Jun 2011 17:09:01 +0000
- Subject: [Bug rtl-optimization/49230] please provide workaround for setjmp/longjmp in mingw32
- Auto-submitted: auto-generated
- References: <bug-49230-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49230
--- Comment #2 from gee <jojelino at gmail dot com> 2011-06-29 17:08:41 UTC ---
Created attachment 24635
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24635
testcase
i hope it would be helpful
GNU gdb (GDB) 7.3.50.20110610-cvs
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-cygwin".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
warning: the current range check setting does not match the language.
warning: the current type check setting does not match the language.
Whether backtraces should continue past the entry point of a program is off.
Reading symbols from /tmp/a...done.
(gdb) r
Starting program: /tmp/a
[New Thread 9616.0x1628]
Program received signal SIGSEGV, Segmentation fault.
0x77b66502 in msvcrt!_abnormal_termination ()
from /cygdrive/c/WINDOWS/system32/msvcrt.dll
(gdb) bt
#0 0x77b66502 in msvcrt!_abnormal_termination ()
from /cygdrive/c/WINDOWS/system32/msvcrt.dll
#1 0x77b6ac67 in strerror () from /cygdrive/c/WINDOWS/system32/msvcrt.dll
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) disassemble
Dump of assembler code for function msvcrt!_abnormal_termination:
0x77b664cf <+0>: xor %eax,%eax
0x77b664d1 <+2>: mov %fs:0x0,%ecx
0x77b664d8 <+9>: cmpl $0x77b66424,0x4(%ecx)
0x77b664df <+16>: jne 0x77b664f1 <msvcrt!_abnormal_termination+34>
0x77b664e1 <+18>: mov 0xc(%ecx),%edx
0x77b664e4 <+21>: mov 0xc(%edx),%edx
0x77b664e7 <+24>: cmp %edx,0x8(%ecx)
0x77b664ea <+27>: jne 0x77b664f1 <msvcrt!_abnormal_termination+34>
0x77b664ec <+29>: mov $0x1,%eax
0x77b664f1 <+34>: ret
0x77b664f2 <+35>: push %ebx
0x77b664f3 <+36>: push %ecx
0x77b664f4 <+37>: mov $0x77b919b0,%ebx
0x77b664f9 <+42>: jmp 0x77b66505 <msvcrt!_abnormal_termination+54>
0x77b664fb <+44>: push %ebx
0x77b664fc <+45>: push %ecx
0x77b664fd <+46>: mov $0x77b919b0,%ebx
=> 0x77b66502 <+51>: mov 0x8(%ebp),%ecx
0x77b66505 <+54>: mov %ecx,0x8(%ebx)
0x77b66508 <+57>: mov %eax,0x4(%ebx)
0x77b6650b <+60>: mov %ebp,0xc(%ebx)
0x77b6650e <+63>: push %ebp
---Type <return> to continue, or q <return> to quit---q
Quit