public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libgcj/52579] New: [4.8 regression] i386_w32_fallback_frame_state should care ffi raw-closure stub function
@ 2012-03-13 17:05 jojelino at gmail dot com
  2012-03-14 10:36 ` [Bug libgcj/52579] " rguenth at gcc dot gnu.org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: jojelino at gmail dot com @ 2012-03-13 17:05 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52579

             Bug #: 52579
           Summary: [4.8 regression] i386_w32_fallback_frame_state should
                    care ffi raw-closure stub function
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libgcj
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: jojelino@gmail.com
              Host: i686-pc-cygwin
            Target: i686-pc-mingw32
             Build: i686-pc-cygwin


when we use closure stub, there is also possibility that callee throws
exception.
but we don't have any dwarf2 handler to take care these closure stub, so unwind
fails with _urc_end_of_stack. resulting abort() called so far.
to fix this problem, i386_w32_fallback_frame_state need to return
_URC_NO_REASON at least.

(gdb) bt
#0  i386_w32_fallback_frame_state (fs=0x22f198, context=<optimized out>)
    at ./md-unwind-support.h:134
#1  uw_frame_state_for (context=context@entry=0x22f118, fs=fs@entry=0x22f198)
    at ../.././libgcc/unwind-dw2.c:1187
#2  0x6e9545d8 in _Unwind_RaiseException (exc=0x14f63a0)
    at ../.././libgcc/unwind.inc:99
#3  0x6968fec9 in _Jv_Throw (value=0x1a48d08)
    at ../.././libjava/exception.cc:123
#4  0x696a194e in _Jv_InterpMethod::run (retp=0x22f658, args=0x22f67c,
    meth=0x117d000) at ../.././libjava/interpret-run.cc:2695
#5  0x69ce4705 in ffi_closure_raw_SYSV () at ../.././libffi/src/x86/win32.S:777
#6  0x01910911 in ?? ()
#7  0x69ce43e8 in ffi_raw_call (cif=0x1af5d5c, fn=0x19108e0, rvalue=0x22f8bc,
    fake_avalue=0x22f724) at ../.././libffi/src/x86/ffi.c:828
#8  0x6969dc4e in _Jv_InterpMethod::run (retp=0x22fa24, args=0x22fa48,
    meth=0x12fab68) at ../.././libjava/interpret-run.cc:611
#9  0x69ce4705 in ffi_closure_raw_SYSV () at ../.././libffi/src/x86/win32.S:777
#10 0x019108a1 in ?? ()
#11 0x69ce43e8 in ffi_raw_call (cif=0x1af5d8c, fn=0x1910870, rvalue=0x22fc88,
    fake_avalue=0x22fae0) at ../.././libffi/src/x86/ffi.c:828
#12 0x6969dc4e in _Jv_InterpMethod::run (retp=0x22fdf0, args=0x22fe10,
    meth=0x1369000) at ../.././libjava/interpret-run.cc:611
#13 0x69ce4705 in ffi_closure_raw_SYSV () at ../.././libffi/src/x86/win32.S:777
---Type <return> to continue, or q <return> to quit---
#14 0x696bf782 in gnu::java::lang::MainThread::call_main (this=0xbf2de0)
    at ../.././libjava/gnu/java/lang/natMainThread.cc:54
#15 0x696fcd06 in gnu.java.lang.MainThread.run()void (this=@bf2de0)
    at D:/cygwin/tmp/gcc/libjava/gnu/java/lang/MainThread.java:106
#16 0x696ce642 in _Jv_ThreadRun (thread=0xbf2de0)
    at ../.././libjava/java/lang/natThread.cc:335
#17 0x69684074 in _Jv_RunMain (vm_args=0x0, klass=klass@entry=0x0,
    name=name@entry=0x403064 "org.eclipse.jdt.internal.compile"...,
    argc=argc@entry=0xb, argv=argv@entry=0x3d8b70, is_jar=is_jar@entry=0x0)
    at ../.././libjava/prims.cc:1795
#18 0x69684266 in _Jv_RunMain (klass=0x0,
    name=name@entry=0x403064 "org.eclipse.jdt.internal.compile"...,
    argc=argc@entry=0xb, argv=argv@entry=0x3d8b70, is_jar=is_jar@entry=0x0)
    at ../.././libjava/prims.cc:1820
#19 0x6968429f in JvRunMainName (
    name=0x403064 "org.eclipse.jdt.internal.compile"..., argc=0xb,
    argv=0x3d8b70) at ../.././libjava/prims.cc:1832
#20 0x00401d12 in ?? ()
#21 0x004010fd in ?? ()
#22 0x00000000 in ?? ()
(gdb) up
#1  uw_frame_state_for (context=context@entry=0x22f118, fs=fs@entry=0x22f198)
    at ../.././libgcc/unwind-dw2.c:1187
1187          return MD_FALLBACK_FRAME_STATE_FOR (context, fs);
(gdb) print context->ra
$21 = (void *) 0x1910911
(gdb) x/i context->ra
   0x1910911:   ret    $0x10
(gdb)


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-03-15 21:26 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-13 17:05 [Bug libgcj/52579] New: [4.8 regression] i386_w32_fallback_frame_state should care ffi raw-closure stub function jojelino at gmail dot com
2012-03-14 10:36 ` [Bug libgcj/52579] " rguenth at gcc dot gnu.org
2012-04-19  8:25 ` jojelino at gmail dot com
2012-09-19 12:18 ` rguenth at gcc dot gnu.org
2013-03-22 14:41 ` [Bug libgcj/52579] [4.8/4.9 " jakub at gcc dot gnu.org
2013-05-31 10:57 ` jakub at gcc dot gnu.org
2013-10-16  9:48 ` jakub at gcc dot gnu.org
2014-05-22  9:00 ` [Bug libgcj/52579] [4.8/4.9/4.10 " rguenth at gcc dot gnu.org
2014-12-19 13:36 ` [Bug libgcj/52579] [4.8/4.9/5 " jakub at gcc dot gnu.org
2015-03-12 15:24 ` ktietz at gcc dot gnu.org
2015-03-15 21:26 ` jojelino at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).