首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux中调试多线程挂起进程?

如何在Linux中调试多线程挂起进程?
EN

Stack Overflow用户
提问于 2011-09-05 07:09:37
回答 2查看 4.4K关注 0票数 5

多线程应用程序挂起,它没有响应任何命令。我试着做了一些没有运气的事情:

将进程附加到gdb (错误:(gdb)将6026附加到进程6026 ptrace:操作而非permitted.)

  • gstack (gstack仅挂起)

)

有什么好的方法来调试这个进程吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-05 11:04:01

谢谢你的回应。问题在内核级别。我们使用echo t>/proc/sysrq-触发器,它记录/var/log/messages中所有正在运行的进程的堆栈。这个堆栈跟踪帮助分析了问题。

从堆栈跟踪中,文件系统代表应用程序进程将一些等待事件发布到其他进程(处于失效状态),并无限期地等待响应。这就导致了悬空状态。

票数 6
EN

Stack Overflow用户

发布于 2011-09-05 09:39:57

很可能其他人已经在追踪这个过程了。要找出是谁做的,请查看proc文件系统。

代码语言:javascript
复制
cat /proc/6026/status|grep TracerPid
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7304826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档