29
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

よく使う strace のオプション

Last updated at Posted at 2016-06-12

Linux で strace を使ってシステムコールのトレースを調べる時によく使うオプションをメモ。

システムコールを詳細に追う

  • tt: 行頭にタイムスタンプをマイクロ秒単位で出力
  • T: 行末にシステムコール内での所要時間を出力
  • ff: 子プロセスのシステムコールもトレースし、-o との併用でプロセス(スレッド)毎に別ファイルに出力
  • o: 指定したファイルに出力。-ff と併用すると、ファイルパス. に出力
  • s: 出力文字数を指定。I/Oサイズが1MBなど大きい場合で、読書きした内容を確認したい場合は、大きくする。
  • p: プロセスIDを指定。
$ strace -Ttt -ff -s 1500000 -o <ログ出力先ファイル名> -p <PID>
もしくは
$ strace -Ttt -ff -s 1500000 -o <ログ出力先ファイル名> <コマンド>

同じプロセスが生きている間に /proc/[pid]/fd でファイルディスクリプタ番号とファイルパスの対応を確認しておくと、strace で read(17, ... などと出力されている場合に、17 のファイルパスかわかります。

$ ls -l /proc/[pid]/fd

システムコールの種類別に集計(時間・回数)する

$ strace -fc -o <ログ出力先ファイル名> -p <PID>
もしくは
$ strace -fc -o <ログ出力先ファイル名> <コマンド>

コマンドの実行例などは ablog 参照

29
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?