Cross-platform, multithreaded debugging (x86 to ARM) with gdb and gdbserver not recognizing threads

Jason Machacek jmachacek@stratos.com
Thu Dec 17 19:04:00 GMT 2009


>> $ /opt/crosstool/gcc-3.4.4-glibc-2.3.2/arm-linux/bin/arm-linux-nm
>> libpthread-0.10.so | egrep 'version|threads_events'
>> 0000de40 r __linuxthreads_version
>> 00018e68 b __pthread_threads_events
>
> AFAIU, this is the host copy of libpthread.

That was the target's copy of libpthread.so--I did copy it back to the
host before running arm-linux-nm on it as you suggested.


> Was it on the same target you are using now? (That would rule out
stripped
> libpthread, or libpthread/libthread_db mismatch, as gdb and gdbserver
> should be similarly broken.)

Yes, it was the same target.  Running GDB natively works perfectly with
multiple threads, but when running GDB from my host and connecting to
gdbserver on my target GDB gets confused when the program reaches the
first pthread_create() call.  Unfortunately, my application has recently
become too large to fit in the target's memory while GDB is running, so
I can no longer run GDB natively on my target.

Best regards,
Jason



More information about the Gdb mailing list