2016-04-08 9 views
0

libmicrohttpdウェブサーバー(独自のスレッドを管理している)を起動し、メインスレッドで "pause"を呼び出してプログラム全体が終了しないようにするプログラムがあります。straceが一時停止してsyscallになってしまう

私はこのプログラムをstraceしようとしていますが、 "一時停止"コールを取得するとすぐにstraceからの出力は得られません。 (多くのIOとシステムコールがバックグラウンドで行われているにもかかわらず)

これを修正する方法はありますか? (私は-e trace=\!pause試してみました - それは、単に出力を抑制しているようだ、私はまだハングアップを取得

を(それが重要ならば、私はカーネルのバージョン3.14.51とDebianの誘導体で実行しています)

straceの。。。コマンド:strace -ttT -p 28948

答えて

0

問題はそのstraceのが唯一のメインスレッドでの呼び出しをトレースして、実際にだった(それはpauseとは何の関係もなかった - メインスレッドでちょうど最後のシステムコールだったという。)

修正プログラムがあります。 :

strace -ttffT -p 28948 

(ドキュメントが-ffはマルチプロセスアプリケーションも としてマルチスレッドに適用されることは全く明らかではない。)

関連する問題