GDB backtrace does not work correctly for Thumb-2 on armel
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro GDB |
Fix Released
|
Medium
|
Ulrich Weigand | ||
gdb (Ubuntu) |
Fix Released
|
Medium
|
Steve Langasek |
Bug Description
Binary package hint: gdb
Observed in a native gdb trunk build on 20100217 (built and run on Ubuntu lucid)
Observed in Ubuntu gdb 7.0.1-0ubuntu1 (Ubuntu lucid)
GDB generally identifies at most 2 or 3 frames of backtrace and then gives up (or occasionally,
gets into an infinite loop).
The following log shows an example of the kind of behaviour I see.
In a separate case, debuuging a now fixed problem in objdump, gdb fails to notice the identical
stack frame and gets into an infinite loop.
Similar results are seen regardless of whether debugging info is available.
~# gdb /usr/sbin/rsyslogd-
GNU gdb (GDB) 7.0.50.20100218-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "armv7l-
For bug reporting instructions, please see:
<http://
Reading symbols from /usr/sbin/
(gdb) set follow-fork-mode child
(gdb) r
Starting program: /usr/sbin/rsyslogd-
[Thread debugging using libthread_db enabled]
[New process 11139]
[Thread debugging using libthread_db enabled]
[New Thread 0x40a19470 (LWP 11140)]
[New Thread 0x41219470 (LWP 11141)]
[New Thread 0x41a19470 (LWP 11142)]
[New Thread 0x42219470 (LWP 11143)]
^C
Program received signal SIGINT, Interrupt.
[Switching to Thread 0x400191c0 (LWP 11139)]
0x4011cb30 in select () from /lib/libc.so.6
(gdb) bt
#0 0x4011cb30 in select () from /lib/libc.so.6
#1 0x4012b966 in ?? () from /lib/libc.so.6
#2 0x4012b966 in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) q
A debugging session is active.
Inferior 2 [process 11139] will be killed.
Quit anyway? (y or n) y
~#
Related branches
tags: | added: armv7 thumb |
Changed in gdb-linaro: | |
assignee: | nobody → Ulrich Weigand (uweigand) |
Changed in gdb-linaro: | |
status: | In Progress → Fix Committed |
milestone: | none → 7.2-2010.10-0 |
Changed in gdb-linaro: | |
status: | Fix Committed → Fix Released |
tags: | added: arm-porting-queue |
Changed in gdb (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Triaged |
assignee: | nobody → Steve Langasek (vorlon) |
Changed in gdb (Ubuntu): | |
status: | Triaged → Fix Released |
Ulrich, I saw "gdb" and I thought of you! ;-) Would you be tempted to try reproducing this issue with gdb tip, and if it's still an issue, to work on a fix? :-)