+++ This bug was initially created as a clone of Bug #165025 +++ Description of problem: GDB intermittently fails with gcj-generated (BC-ABI) .sos. Version-Release number of selected component (if applicable): gdb-6.3.0.0-1.24.ppc How reproducible: Always ... although no small test case unfortunately. Steps to Reproduce: 1. start eclipse 2. gdb /usr/bin/java <pid> 3. thread apply all bt (or almost any command ... it happens quite frequently) Actual results: ../../gdb-6.3/gdb/dwarf2-frame.c:454: internal-error: Unknown CFI 47 encountered. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) y ../../gdb-6.3/gdb/dwarf2-frame.c:454: internal-error: Unknown CFI 47 encountered. A problem internal to GDB has been detected, further debugging may prove unreliable. Create a core file of GDB? (y or n) n Expected results: No gdb failures. Additional info: Andrew Cagney has looked into this and knows what the problem is. -- Additional comment from cagney on 2005-08-03 15:32 EST -- GDB needs to handle DW_CFA_GNU_negative_offset_extended which has been in the java sources since ~2001: 1.2 (aph 03-Jun-01): .byte 0x2f /* DW_CFA_GNU_negative_offset_extended */ It's actually 100% reproducable, and it occures on rhel4. -- Additional comment from cagney on 2005-08-03 15:34 EST -- This needs to be added to dwarf2-frame.c: case DW_CFA_GNU_negative_offset_extended: insn_ptr = read_uleb128 (insn_ptr, insn_end, ®); insn_ptr = read_uleb128 (insn_ptr, insn_end, &offset); offset *= fs->data_align; dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1); fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET; fs->regs.reg[reg].loc.offset = -offset; break; -- Additional comment from jkratoch on 2006-12-31 01:08 EST -- Patch committed as is to RawHide incl. an i386 testcase: * Sat Dec 30 2006 Jan Kratochvil <jan.kratochvil> - 6.5-22 - Fix unwinding crash on older gcj(1) code (extended CFI support) (BZ 165025).
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
Artificial testcases are better as they don't rely on random compiler output.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2007-0554.html