Hi,
I'm using GDB to debug an application on a remote ARM target, compiled
in Thumb mode (16-bit).
When the size of the locals is too big (apparently something close to
512 bytes), GDB is unable to display the call stack.
See sample code below:
void NoBugStack(void)
{
char buf[508];
buf[0] = 0;
}
void BugStack(void)
{
char buf[509];
buf[0] = 0;
}
When you set a breakpoint at line 5 (function "NoBugStack"),
everything's fine. On the other hand, when you set a breakpoint at line
12 (function "BugStack"), GDB is unable to display the call stack (the
command "bt" returns an error). The only difference between the 2
functions is
the size of the locals.
The file was compiled with GCC 3.4.3, with the following command line:
arm-elf-gcc.exe -g -c -Wall -Wcast-align -mthumb-interwork
-mlittle-endian -msoft-float -pipe -mcpu=arm920t -fomit-frame-pointer
-fshort-enums -mstructure-size-boundary=8 -mthumb
Additional notes:
- This does not happen when the application is compiled in ARM mode
(32-bit)
- I've reproduced the problem with 2 different types of ARM target, so
it does not seem caused by the target itself.
Thanks for your help,
Thierry
P.S.: I've filled a bug report
http://sourceware.org/bugzilla/show_bug.cgi?id=9742
About Ingenico: Ingenico is the world's leading provider of payment solutions,
with over 15 million terminals deployed across the globe. Delivering the very
latest secure electronic payment technologies, transaction management and the
widest range of value added services, Ingenico is shaping the future direction
of the payment solutions market. Leveraging on its global presence and local
expertise, Ingenico is reinforcing its leadership by taking banks and
businesses beyond payment through offering comprehensive solutions, a true
source of differentiation and new revenues streams.
This message may contain confidential and/or privileged information. If you
are not the addressee or authorized to receive this for the addressee, you must
not use, copy, disclose or take any action based on this message or any
information herein. If you have received this message in error, please advise
the sender immediately by reply e-mail and delete this message. Thank you for
your cooperation.
P Please consider the environment before printing this e-mail
_______________________________________________
bug-gdb mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gdb