gdb调试info threads只能显示一个进程问题

gdb调试info threads只能显示一个进程问题

问题:

在一个Linux环境中(dm81XX),调试多线程程序不正常,info threads看不到多线程的信息。

查看过程:

1.先用命令maintenance print target-stack看了一下target的装载情况,发现target"multi-thread"没有被装载,用GDB对GDB进行调试,发现在 函数check_for_thread_db在调用libthread_db中的函数td_ta_new的时候,返回了TD_NOLIBTHREAD,所以没有装载target"multi-thread"。

2.此时,怀疑是不是libpthread有问题,于是检查了一下发现了问题,这个环境中的libpthread是被strip过的,我想可能 就是以为这个影响了td_ta_new对libpthread符号信息的获取。当我换了一个没有strip过的libpthread的时候,问题果然解决了。

结果

最终解决办法是拷贝了一个.debug版本的libpthread到lib目录中,问题解决了。

猜你喜欢

转载自blog.csdn.net/tsh123321/article/details/88948495