Ubuntu

來自正在執行的程序的 strace 呼叫併計算它們

  • January 29, 2021

我有一個後台程序,將執行許多小時。我想跟踪併計算write實時通話次數。

sudo strace -p27861 -s50 -e write 

它給了我這樣的行:

write(1, "...........", 70) = 70

我想要的是獲得這樣的電話的實時計數:

write(1, "...........", 70) = 70, 1
write(1, "...........", 560) = 560, 2
write(1, "...........", 103) = 103, 3

或只計算:

1
2
3

您可以通過對輸出進行後處理來做到這一點,例如使用 GNU AWK:

strace -q -p27861 -s50 -e write -e signal=none 2>&1 | gawk '{ print $0 ", " ++i }'

(它給出了你所追求的輸出,實時),或者cat -n按照user414777的建議:

strace -q -p27861 -s50 -e write -e signal=none 2>&1 | cat -n

-q抑制“附加”消息,並-e signal=none抑制信號跡線。

引用自:https://unix.stackexchange.com/questions/631710