LINUX 多线程调试 求大神

wangmap 2013-04-17 01:19:33
求教大神,在LINUX下调试多线程锁定的时候怎样调试,我现在的程序有一个地方卡死了,都不知道怎么重现,一共开了九个线程,现在想知道各个运行的线程状态,而且现在CPU占用100%,求大神指导这种情况下的调试方法,小弟不胜感激,在线坐等
...全文
113 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
heartlesstoanyone 2013-04-22
  • 打赏
  • 举报
回复
CPU占用100%,肯定是一个线程陷入死循环了,使用版主大人指示的方法尝试下
wangmap 2013-04-22
  • 打赏
  • 举报
回复
问题已经解决,谢谢各位啦,版主方法有效,分给版主了
ynwlgh 2013-04-19
  • 打赏
  • 举报
回复
调试多线程是很复杂的事,有时还要一个好运气. 我希望自己永远不要碰到这个情况. 这个只能用良好的设计来避免.
wangmap 2013-04-17
  • 打赏
  • 举报
回复
引用 3 楼 lgxwqq111 的回复:
引用 2 楼 qq120848369 的回复:top -H看是哪一个线程CPU高,然后gdb -p连到其pid,输入bt看堆栈就可以了。 +1
wangmap 2013-04-17
  • 打赏
  • 举报
回复
引用 2 楼 qq120848369 的回复:
top -H看是哪一个线程CPU高,然后gdb -p连到其pid,输入bt看堆栈就可以了。
这个办法试过了,不过这个有用,程序是在一个调试的地方CPU空转,调试的问题是死锁了。。。。。等待信号而不得
wangmap 2013-04-17
  • 打赏
  • 举报
回复
引用 1 楼 erhou134 的回复:
100% .... 机子都不能动了,怎么调 肯定是哪个循环有问题
机器是双核的。。。稍微可以动一动
vuqrzk5w 2013-04-17
  • 打赏
  • 举报
回复
linux上从来都是自己写日志调试
freetstar 2013-04-17
  • 打赏
  • 举报
回复
引用 2 楼 qq120848369 的回复:
top -H看是哪一个线程CPU高,然后gdb -p连到其pid,输入bt看堆栈就可以了。
+1
qq120848369 2013-04-17
  • 打赏
  • 举报
回复
top -H看是哪一个线程CPU高,然后gdb -p连到其pid,输入bt看堆栈就可以了。
空的 2013-04-17
  • 打赏
  • 举报
回复
100% .... 机子都不能动了,怎么调 肯定是哪个循环有问题

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧