Linuxでファイルやgconfの変更をトレースする

ファイルのトレース

straceコマンドをつけてコマンドを実行すると、そのコマンドがコールしたシステムコールがすべてエラー出力に書き出される。しかしこれだと情報が多すぎるので、-e trace=を指定して、トレースするシステムコールを制限する。以下のコマンドはopenとwriteのみをトレースする。

$ strace -e trace=open,write 2>&1 gedit | less

しかしこれだとwriteのところを見ても第一引数はfdなのでファイル名が分からない。openしたときの戻り値がここには入るはずなので、それで検索して見つけるしかないか?いいツールがあるのかもしれない。

gconfのトレース
これは簡単。環境変数のGCONF_DEBUG_TRACE_CLIENTを設定すればいい。

$ GCONF_DEBUG_TRACE_CLIENT=1 gedit

出力も分かりやすい。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)