Alo*_*lon 5 c c++ multithreading pthreads backtrace
我想了解我的软件中特定线程的状态,它是从另一个线程执行的。具体来说,我想知道它是否卡住了I / O。我正在考虑通过获取backtrace来做到这一点(除非有人有其他想法?),因为我知道应该将其保留在哪个函数上..但我不知道如何获取该特定线程的backtrace,调用SEGFAULT处理程序...但是gdb可以做到(我怀疑他创建了SEGFAULTS ..)
有人可以帮忙吗?任何的想法?
[编辑]所有3个答案都涉及gdb,我知道我可以从gdb做到这一点,我想知道如何从软件中做到这一点(即使以某种方式链接到gdb库也可以解决,但如何?)
我知道它应该被困在哪个函数上..但我不知道如何获取该特定线程的回溯
您可以获取所有线程的回溯,并尝试找到应该卡在回溯输出中的函数。以下是如何获取 gdb 中的所有回溯:
(gdb) thread apply all bt
Run Code Online (Sandbox Code Playgroud)