I am developing an application that runs on a small Linux SBC server (~ 32 MB RAM). Unfortunately, my application has recently become too large to work under GDB. Does anyone know of any good, easy debugging methods that I can use in embedded Linux? Even the ability to view the trace of a thread stack will be extremely useful.
I have to mention that this application is written in C ++ and runs several threads, therefore gdbserver does not work as it does not work with multi-threaded applications.
Thanks in advance,
Maha
gdbserver , s > 25 , gdbserver.
info threads
thread <thread number from info threads>
.
thread apply XXX <command>
, XXX, "". , ,
thread apply all bt
, , .
, , , , QEMU, GDB ( , valgrind). , ...
libunwind ( ) printf?
- , ~~~ , ~~
, GPIO . , :-( ~~~
, ? Linux ARM- (AT91SAM926x), , CodeSourcery. , GDB 7, ++ gdbserver - .
Gdbserver really works with multi-threaded applications. However, you need to compile a cross-target debugger for your host so that it works with your target gdb.
For details on how to do this, see this article:
Remote cross-target debugging with GDB and GDBserver