是否有类似于 Sysinternals 的 Process Explorer 的工具可以查看正在运行的线程的调用堆栈?
到目前为止,我尝试了 htop、qps 和 Linux Process Explorer。它们都无法提供该信息。
谢谢!
答案1
Gdb
GNU 调试实用程序可以提供这样的功能,尽管仅有的针对选定的程序或流程单独进行。不是一个简单的方法,可以像 Windows 上的 Sysinternals 程序一样在系统上运行的进程的调用堆栈之间切换。但是,您可以尝试pstack
,但我没有取得太大的成功。
你还必须安装dbg
软件包(即符号软件包),以便任何gdb
调用堆栈回溯都能正常工作。请参阅Ubuntu 维基有关这些软件包的更多信息。基本上,dbg
软件包版本的安装与正常版本非常相似。例如,您可以运行
sudo apt-get install xserver-xorg-core-dbg
您可以通过启动下面的程序来对程序进行回溯gdb
,也可以通过附加到该进程对已经运行的程序进行回溯gdb
:请参阅这里了解更多详情。
请参见官方手册有关回溯的更多信息gdb
以及更多有用的信息,请访问Ubuntu 调试页面。
使用等分析正在运行的进程的其他方法strace
,对开发人员等在分析进程及其系统调用(而不是堆栈调用)时很有用,已移至此处的这个问题(因为我认为它们现在在那里更相关):