This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb/1419: gdb loop endless in dwarf2_frame_find_fde()


>Number:         1419
>Category:       gdb
>Synopsis:       gdb loop endless in dwarf2_frame_find_fde()
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 16 08:18:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Peter.Seiderer@gmx.de
>Release:        6.0
>Organization:
>Environment:
Suse-Linux-8.2
>Description:
Running multithreaded programm in gdb, abort via CTRL-C,
gdb loops endless.

Original gdb output:

Program received signal SIGINT, Interrupt.
[Switching to Thread 16384 (LWP 28389)]

<nothing more>

Attach to the running gdb via gdb:
(gdb) frame 0
#0  dwarf2_frame_find_fde (pc=0xbfffde74) at dwarf2-frame.c:1142
1142              if (*pc >= fde->initial_location + offset
(gdb) n
1149              fde = fde->next;
(gdb) 
1142              if (*pc >= fde->initial_location + offset
(gdb) 
1149              fde = fde->next;
(gdb) 
1142              if (*pc >= fde->initial_location + offset
(gdb) 
1149              fde = fde->next;
(gdb) p fde
$13 = (struct dwarf2_fde *) 0x82b66ac
(gdb) p fde->next
$14 = (struct dwarf2_fde *) 0x82b670c
(gdb) p fde->next->next
$15 = (struct dwarf2_fde *) 0x82b66f4
(gdb) p fde->next->next->next
$16 = (struct dwarf2_fde *) 0x82b66ac
(gdb)

> > this seems to be a endless loop in fde->next list

(gdb) bt
#0  dwarf2_frame_find_fde (pc=0xbfffde74) at dwarf2-frame.c:1149
#1  0x0815304d in dwarf2_frame_sniffer (next_frame=0x82b4350)
    at dwarf2-frame.c:821
#2  0x08110013 in frame_unwind_find_by_frame (next_frame=0x82b4350)
    at frame-unwind.c:119
#3  0x0810f8d2 in get_frame_type (frame=0x82b43a0) at frame.c:2210
#4  0x080c0648 in print_frame_info (fi=0x82b43a0, level=-1, source=1, args=1)
    at stack.c:427
#5  0x080c015d in print_stack_frame_stub (args=0x8048830) at stack.c:136
#6  0x08106f4f in do_catch_errors (uiout=0x8296a68, data=0x8048830)
    at top.c:497
#7  0x08106e9e in catcher (func=0x8106f40 <do_catch_errors>, 
    func_uiout=0x8296a68, func_args=0xbfffe0e0, func_val=0xbfffe0d8, 
    func_caught=0xbfffe0dc, errstring=0x8048830 "A\r", mask=6) at top.c:429
#8  0x08106f96 in catch_errors (func=0x8048830, func_args=0x8048830, 
    errstring=0x81d88b7 "", mask=6) at top.c:509
#9  0x080c01a4 in print_stack_frame (fi=0x8048830, level=134514736, 
    source=134514736) at stack.c:160
#10 0x080bd070 in normal_stop () at infrun.c:3188
#11 0x080e9715 in find_default_create_inferior (
    exec_file=0x82a4ef0 "/home/seiderer/mmap_test/mmap_test", 
    allargs=0x82d8e10 "", env=0x8287298) at target.c:1227
#12 0x080b76c3 in run_command (args=0x0, from_tty=136368549) at infcmd.c:477
---Type <return> to continue, or q <return> to quit---
#13 0x08079cb4 in do_cfunc (c=0x8048830, args=0x0, from_tty=1)
    at cli/cli-decode.c:53
#14 0x0807b934 in cmd_func (cmd=0x8286ee0, args=0x0, from_tty=1)
    at cli/cli-decode.c:1537
#15 0x081073b6 in execute_command (p=0x827a79b "", from_tty=1) at top.c:716
#16 0x080c5e23 in command_handler (command=0x827a798 "") at event-top.c:500
#17 0x080c6452 in command_line_handler (rl=0x82aa540 "") at event-top.c:793
#18 0x081c1602 in rl_callback_read_char () at callback.c:123
#19 0x080c576b in rl_callback_read_char_wrapper (client_data=0x0)
    at event-top.c:166
#20 0x080c5d2a in stdin_event_handler (error=0, client_data=0x8048830)
    at event-top.c:416
#21 0x080c4f60 in handle_file_event (event_file_desc=134514032)
    at event-loop.c:721
#22 0x080c4994 in process_event () at event-loop.c:334
#23 0x080c49f8 in gdb_do_one_event (data=0x0) at event-loop.c:371
#24 0x08106f4f in do_catch_errors (uiout=0x8296a68, data=0x8048830)
    at top.c:497
#25 0x08106e9e in catcher (func=0x8106f40 <do_catch_errors>, 
    func_uiout=0x8296a68, func_args=0xbfffe460, func_val=0xbfffe458, 
    func_caught=0xbfffe45c, errstring=0x8048830 "A\r", mask=6) at top.c:429
#26 0x08106f96 in catch_errors (func=0x8048830, func_args=0x8048830, 
    errstring=0x81d88b7 "", mask=6) at top.c:509
---Type <return> to continue, or q <return> to quit---
#27 0x080c4a33 in start_event_loop () at event-loop.c:397
#28 0x08077a2b in captured_command_loop (data=0x0) at main.c:97
#29 0x08106f4f in do_catch_errors (uiout=0x8296a68, data=0x8048830)
    at top.c:497
#30 0x08106e9e in catcher (func=0x8106f40 <do_catch_errors>, 
    func_uiout=0x8296a68, func_args=0xbfffe5e0, func_val=0xbfffe5d8, 
    func_caught=0xbfffe5dc, errstring=0x8048830 "A\r", mask=6) at top.c:429
#31 0x08106f96 in catch_errors (func=0x8048830, func_args=0x8048830, 
    errstring=0x81d88b7 "", mask=6) at top.c:509
#32 0x080780f3 in captured_main (data=0x0) at main.c:811
#33 0x08106f4f in do_catch_errors (uiout=0x82563e0, data=0x8048830)
    at top.c:497
#34 0x08106e9e in catcher (func=0x8106f40 <do_catch_errors>, 
    func_uiout=0x82563e0, func_args=0xbfffe880, func_val=0xbfffe878, 
    func_caught=0xbfffe87c, errstring=0x8048830 "A\r", mask=6) at top.c:429
#35 0x08106f96 in catch_errors (func=0x8048830, func_args=0x8048830, 
    errstring=0x81d88b7 "", mask=6) at top.c:509
#36 0x08078723 in gdb_main (args=0x8048570) at main.c:820
#37 0x08077a0f in main (argc=134514736, argv=0x8048830) at gdb.c:35
(gdb) 


> :~/test> ldd test
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40023000)
        libm.so.6 => /lib/libm.so.6 (0x400db000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x400fe000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x40106000)
        libc.so.6 => /lib/libc.so.6 (0x40156000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
:~/test> gcc --version
gcc (GCC) 3.3 20030226 (prerelease) (SuSE Linux)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

:~/test> gdb --version
GNU gdb 6.0
Copyright 2003 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 "i686-pc-linux-gnu".
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]