首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看Linux中挂起的进程中特定线程的堆栈跟踪

如何查看Linux中挂起的进程中特定线程的堆栈跟踪
EN

Stack Overflow用户
提问于 2017-09-21 11:39:34
回答 1查看 1.7K关注 0票数 0

我有一个多线程进程,它在Linux下运行时被卡住了。但是我没有多线程版本的pstack (用gstack制作的别名)。因此,gstack <pid>没有为我提供任何东西。我(a)如何将gdb附加到一个已经在运行的进程(b)获取单个线程的堆栈跟踪(c)从三个(如果已知的话)知道正在运行的进程(d)的三个,我如何才能看到卡在进程中运行的线程的堆栈跟踪/调用堆栈?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-21 11:44:54

首先,使用选项-O0 -ggdb编译它,以便进行最佳调试。

如果可以在gdb下运行,只需运行

代码语言:javascript
复制
   # gdb ./yourbinary

等等问题就行了。当进程陷入困境时,只需按^C键,您就可以加入了。

如果不能在gdb下运行,只需:

代码语言:javascript
复制
   # gdb --pid=<YOUR PID>

在这两种情况下,输入info threads,您将看到所有线程。然后选择一个,您就可以看到bt或其他任何东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46343007

复制
相关文章

相似问题

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