This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/39291] _Unwind_Backtrace fails.
- From: "pluto at agmk dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Mar 2009 15:44:31 -0000
- Subject: [Bug target/39291] _Unwind_Backtrace fails.
- References: <bug-39291-7667@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from pluto at agmk dot net 2009-03-22 15:44 -------
(In reply to comment #7)
> haa! i've found the core problem.
> on my winxp64 i have DEP (data execution prevention) turned on
> for all programs and this is why the testcase (longjmp?) fails.
> this looks weird beacuse longjmp on x86-64 with NX-bit enabled
> works fine.
please ignore this comment, i've just ran wrong .exe after
changing DEP settings :) but i've found new details
with testcase reduced to setjmp/longjmp comparing gcc-4.4.0
and gcc-4.3.3(tdm-dragon-build).
D:\src\mingw-unwind>u-433-dw2-tdm-dragon.exe
longjmp
alive!
D:\src\mingw-unwind>u-440-dw2.exe
longjmp
Program received signal SIGSEGV, Segmentation fault.
0x00405460 in fctMsvcrtLongJmp ()
(gdb) bt
#0 0x00405460 in fctMsvcrtLongJmp ()
#1 0x004017ae in main () at u.c:12
(gdb) disassemble
Dump of assembler code for function fctMsvcrtLongJmp:
0x00405460 <fctMsvcrtLongJmp+0>: sbb %bh,-0x44(%esi)
0x00405463 <fctMsvcrtLongJmp+3>: ja 0x405466 <initialized+2>
the u-440-dw2.exe doesn't import longjmp symbol from msvcrt.dll
while u-433-dw2-tdm-dragon.exe imports longjmp and _setjmp.
Kai, could you check mingw-w64-crt?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39291