Easy debugging of embedded Linux

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

+5
source share
5 answers

gdbserver , s > 25 , gdbserver.

info threads 

thread <thread number from info threads>  

.

thread apply XXX <command>  

, XXX, "". , ,

thread apply all bt

, , .

+4

, , , , QEMU, GDB ( , valgrind). , ...

libunwind ( ) printf?

+2

- , ~~~ , ~~

, GPIO . , :-( ~~~

+1

, ? Linux ARM- (AT91SAM926x), , CodeSourcery. , GDB 7, ++ gdbserver - .

0

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

0
source

All Articles