strace卡在暂停系统调用

时间:2016-04-08 10:42:23

标签: linux strace

我有一个程序,它启动一个libmicrohttpd网络服务器(管理自己的线程),然后调用"暂停"在主线程中,以便整个程序不会退出。

我正试图对这个程序进行分析,但是一旦我进入"暂停"打电话,我不能从strace获得任何进一步的输出。 (尽管事实上很多IO,因此系统调用正在后台进行。)

有任何建议如何解决这个问题? (我已经尝试过-e trace=\!pause - 但这似乎只是抑制了输出。我仍然可以解决问题。

(如果重要的话,我正在运行内核版本为3.14.51的debian衍生版。)

strace命令:strace -ttT -p 28948

1 个答案:

答案 0 :(得分:0)

问题实际上是strace只跟踪主线程中的调用。 (它与pause无关 - 这只是主线程中的最后一个系统调用。)

修复方法是:

strace -ttffT -p 28948

(文档根本不清楚-ff适用于多线程 以及多进程应用程序。)