一尘不染

获取其他线程的回溯

linux

在Linux中,可以使用backtrace()库调用来获取回溯,但是它仅返回当前线程的回溯。假设我知道它是TID(或pthread_t)并且可以保证它可以入睡,是否有任何方法可以获取其他线程的回溯?

看来libunwind(http://www.nongnu.org/libunwind/)项目可以提供帮助。问题是CentOS不支持它,因此我不希望使用它。

还有其他想法吗?谢谢。


阅读 194

收藏
2020-06-02

共1个答案

一尘不染

借助backtrace进行信号处理可以解决您的目的。

我的意思是,如果您具有线程的PID,则可以对该线程发出信号。在处理程序中,您可以使用backtrace。由于处理程序将在该特定线程中执行,因此回溯将有您需要的输出。

2020-06-02