strace -pには、コンテキスト/履歴行の数が含まれます。

strace -pには、コンテキスト/履歴行の数が含まれます。

私はstrace実行中のプロセスが欲しくてそれでそれを行うことができることを知っていますが、strace -p <pid>プロセスがsem_wait()公開されていないセマフォなどのいくつかのブロック呼び出しにかかっていて、出力はstrace1行だけです。例えば:

Process 195 attached - interrupt to quit
poll([{fd=3, events=POLLIN}, {fd=6, events=POLLIN}], 2, 3600000^C <unfinished ...>

straceより多くのコンテキスト/書き込み行を出力するように指定できますか?ライブ出力と各機能/コマンドを推測しているのでそうではないようですがstrace確認を要請しなければならないと思いました。

ベストアンサー1

gdbたとえば、 Attach to process を使用して現在のスタックを表示することもできます。これは、特にデバッグシンボルを使用してプログラムをコンパイルした場合に、より多くの情報を取得するのに役立ちます。

たとえば、sleepバックグラウンドで実行し、その pid をインポートし、pid ファイルとターゲットファイルで gdb を実行し、bt逆追跡コマンドを実行します。プログラムを続行するには、と入力しますdetach

$ sleep 999 & 
[1] 17340
$ gdb -p 17340 /bin/sleep 
Reading symbols from /bin/sleep...(no debugging symbols found)...done.
Attaching to program: /usr/bin/sleep, process 17340
Missing separate debuginfos, use: dnf debuginfo-install coreutils-8.24-8.fc23.x86_64
(gdb) bt
#0  0x00007fb84f43d510 in __nanosleep_nocancel () from /lib64/libc.so.6
#1  0x0000562be81da29f in rpl_nanosleep ()
#2  0x0000562be81da100 in xnanosleep ()
#3  0x0000562be81d7a1d in main ()
(gdb) detach
Detaching from program: /usr/bin/sleep, process 17340
(gdb) quit

おすすめ記事