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

来源:互联网 发布:网络十大禁书百度云 编辑:程序博客网 时间:2024/05/31 19:51
在一个Linux环境中,调试多线程程序不正常,info threads看不到多线程的信息。 
我先用命令maintenance print target-stack看了一下target的装载情况,发现target"multi-thread"没有被装载,用GDB对GDB进行调试,发现在 函数check_for_thread_db在调用libthread_db中的函数td_ta_new的时候,返回了TD_NOLIBTHREAD,所 以没有装载target"multi-thread"。 
在时候我就怀疑是不是libpthread有问题,于是检查了一下发现了问题,这个环境中的libpthread是被strip过的,我想可能 就是以为这个影响了td_ta_new对libpthread符号信息的获取。当我换了一个没有strip过的libpthread的时候,问题果然解决 了。 
最终我的解决办法是拷贝了一个.debug版本的libpthread到lib目录中,问题解决了。 
0 0
原创粉丝点击