Fedora Account System
Red Hat Associate
Red Hat Customer
Description of problem: I installed the thunderbird-debuginfo package to attempt to get information on a thunderbird segmentation fault, but when I try to connect to the thunderbird process: [root@cynosure ~]# gdb -p 6131 GNU gdb Red Hat Linux (6.6-8.fc7rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu". Attaching to process 6131 Reading symbols from /usr/lib/thunderbird-2.0.0.0/thunderbird-bin...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-2.0.0.0/thunderbird-bin.debug...done. Using host libthread_db library "/lib/libthread_db.so.1". done. Reading symbols from /usr/lib/thunderbird-2.0.0.0/libmozjs.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-2.0.0.0/libmozjs.so.debug...done. done. Loaded symbols for /usr/lib/thunderbird-2.0.0.0/libmozjs.so Reading symbols from /usr/lib/thunderbird-2.0.0.0/libxpcom.so...Reading symbols from /usr/lib/debug/usr/lib/thunderbird-2.0.0.0/libxpcom.so.debug...Segmentation fault
With gdb-debuginfo installed: Program terminated with signal 11, Segmentation fault. #0 dwarf_decode_lines (lh=0xa42a900, comp_dir=0x0, abfd=0xa3e3a28, cu=0xbf9bdd18, pst=0xa4fb40c) at gdb/dwarf2read.c:6693 6693 gdb/dwarf2read.c: No such file or directory. in gdb/dwarf2read.c (gdb) bt #0 dwarf_decode_lines (lh=0xa42a900, comp_dir=0x0, abfd=0xa3e3a28, cu=0xbf9bdd18, pst=0xa4fb40c) at gdb/dwarf2read.c:6693 #1 0x0815e598 in dwarf2_build_psymtabs (objfile=0xa4eeb30, mainline=0) at gdb/dwarf2read.c:1397 #2 0x081540a3 in elf_symfile_read (objfile=0xa4eeb30, mainline=0) at gdb/elfread.c:609 #3 0x0810bbc2 in syms_from_objfile (objfile=0xa4eeb30, addrs=0xa06b270, offsets=0x0, num_offsets=0, mainline=0, verbo=1) at gdb/symfile.c:830 #4 0x0810bf48 in symbol_file_add_with_addrs_or_offsets (abfd=0xa3e3a28, from_tty=1, addrs=0xa06b270, offsets=0x0, num_offsets=0, mainline=0, flags=8) at gdb/symfile.c:946 #5 0x0810bf9a in symbol_file_add_with_addrs_or_offsets (abfd=<value optimized out>, from_tty=1, addrs=0xa356500, offsets=0x0, num_offsets=0, mainline=0, flags=<value optimized out>) at gdb/symfile.c:976 #6 0x08092430 in symbol_add_stub (arg=0x9eddad0) at gdb/solib.c:432 #7 0x08124853 in catch_errors (func=0x8092340 <symbol_add_stub>, func_args=0x9eddad0, errstring=0x824d2f4 "Error while reading shared library symbols:\n", mask=6) at gdb/exceptions.c:515 #8 0x080920aa in solib_read_symbols (so=0x9eddad0, from_tty=1) at gdb/solib.c:459 #9 0x08092a12 in solib_add (pattern=0x0, from_tty=1, target=0x832c2a0, readsyms=1) at gdb/solib.c:694 #10 0x081173c8 in post_create_inferior (target=0x832c2a0, from_tty=1) at gdb/infcmd.c:416 #11 0x081174c4 in attach_command (args=0xbf9c0af4 "6131", from_tty=1) at gdb/infcmd.c:1938 #12 0x081247c9 in catch_command_errors (command=0x81173f0 <attach_command>, arg=0xbf9c0af4 "6131", from_tty=1, mask=6) at gdb/exceptions.c:530 #13 0x0807f1d2 in captured_main (data=0xbf9bf2c4) at gdb/main.c:701 #14 0x08124853 in catch_errors (func=0x807ec10 <captured_main>, func_args=0xbf9bf2c4, errstring=0x8251a49 "", mask=6) at gdb/exceptions.c:515 #15 0x0807ebc1 in gdb_main (args=0xbf9bf2c4) at gdb/main.c:836 #16 0x0807eb85 in main (argc=Cannot access memory at address 0xe ) at gdb/gdb.c:35 Not sure why it doesn't find /usr/src/debug/gdb-6.6/gdb/dwarf2read.c. Running gdb in /usr/src/debug/gdb-6.6 gives us: #0 dwarf_decode_lines (lh=0xa42a900, comp_dir=0x0, abfd=0xa3e3a28, cu=0xbf9bdd18, pst=0xa4fb40c) at gdb/dwarf2read.c:6693 6693 lh->file_names[file - 1].included_p = 1; (gdb) list 6688 /* Special operand. */ 6689 adj_opcode = op_code - lh->opcode_base; 6690 address += (adj_opcode / lh->line_range) 6691 * lh->minimum_instruction_length; 6692 line += lh->line_base + (adj_opcode % lh->line_range); 6693 lh->file_names[file - 1].included_p = 1; 6694 if (!decode_for_pst_p) 6695 { 6696 if (last_subfile != current_subfile) 6697 { (gdb) print lh $1 = (struct line_header *) 0xa42a900 (gdb) print file $2 = 1 ((gdb) print lh->file_names $3 = (struct file_entry *) 0x0
Confirming reproducibility besides the reported i386 also on x86_64. Thanks, it just needs a CVS backport worth the F7 update release: http://sources.redhat.com/ml/gdb-patches/2007-04/msg00293.html http://sourceware.org/ml/gdb-cvs/2007-05/msg00099.html
Created attachment 155962 [details] Reproducer from thunderbird-debuginfo-2.0.0.0-1.fc7.x86_64 .
*** Bug 242432 has been marked as a duplicate of this bug. ***
gdb-6.6-15.fc7 has been pushed to the Fedora 7 stable repository. If problems still persist, please make note of it in this bug report.