跟踪linux中的pthreads?

时间:2011-10-08 16:31:44

标签: c linux multithreading

我没有找到任何用于在linux进程中跟踪pthread的线程的工具。我想要像strace / ltrace这样的东西,是否可以实时查看来电? 谢谢

2 个答案:

答案 0 :(得分:14)

strace也适用于线程。使用strace -f来排除所有线程。

要仅划分特定线程,首先必须找到它的tid(线程ID)。 线程有线程ID,它实际上是一个pid(进程ID)

一旦你知道线程的pid,使用strace -p the_pid来划分该线程。

可以在/proc/<pid>/task/中找到进程中所有线程的pid,或者可以使用gettid() C调用来学习当前线程ID。

答案 1 :(得分:2)

实际上strace不如perf。

使用perf工具,您可以获得更多信息。

例如,如果某些线程挂起,并且您想要查找挂起的函数调用, 使用strace -p pid-id返回有限的信息,但是perf top或perf -t tid返回更多