Linux で strace コマンドによるシステムコールのトレース
【概要】Linux の strace コマンドは、プログラムが実行するシステムコールをトレースする。ptrace の機能を用いて、ファイル I/O やネットワーク通信などの低レベル操作を記録し、動作不良やエラーの原因究明に利用できる。
strace のインストール(Ubuntu 上)
次のコマンドを実行する。
sudo apt update
sudo apt -y install strace
-y オプションは、インストール時の確認応答をすべて「はい」として実行することを意味する。Ubuntu 24.04 LTS には strace バージョン 6.8 のパッケージがある。
Ubuntuでの実行例
strace コマンドは、プログラムがシステムに対して行う要求(システムコール)を記録する。これにより、プログラムの実行経路や、エラーが発生したときの状況を確認できる。
主な使い方は次の通りである。-e trace=file オプションはファイル関連のシステムコールだけを対象にする。-f オプションは子プロセスもトレースする。-p PID オプションは実行中のプロセスにアタッチしてトレースする。-o オプションは出力をファイルに保存する。これらを使うことで、ファイルアクセス権限の問題、存在しないファイルの参照、ネットワーク接続の失敗などの原因を調べることができる。
straceコマンドの実行例を示す。