【问题标题】:strace gets stuck at pause syscallstrace 卡在暂停系统调用中
【发布时间】:2016-04-08 10:42:23
【问题描述】:

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

我正在尝试对这个程序进行 strace,但是一旦我进入“暂停”调用,我就没有从 strace 获得任何进一步的输出。 (尽管许多 IO 和系统调用都发生在后台。)

有什么建议可以解决这个问题吗? (我试过-e trace=\!pause - 但这似乎只是抑制了输出。我仍然明白。

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

strace 命令:strace -ttT -p 28948

【问题讨论】:

    标签: linux strace


    【解决方案1】:

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

    解决方法是:

    strace -ttffT -p 28948
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 2020-05-18
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多