From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31394 invoked by alias); 13 Mar 2012 17:11:35 -0000 Received: (qmail 31369 invoked by uid 22791); 13 Mar 2012 17:11:34 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,DATE_IN_PAST_03_06,SUBJ_OBFU_PUNCT_FEW,TW_FC,TW_GC X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 13 Mar 2012 17:11:22 +0000 From: "jojelino at gmail dot com" To: java-prs@gcc.gnu.org Subject: [Bug libgcj/52579] New: [4.8 regression] i386_w32_fallback_frame_state should care ffi raw-closure stub function Date: Tue, 13 Mar 2012 17:11:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libgcj X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jojelino at gmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org X-SW-Source: 2012-q1/txt/msg00107.txt.bz2 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=) 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 to continue, or q 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)