デバッグ戦略 - どのプロセスがファイルを変更しようとしているのか、どうすればわかりますか?

デバッグ戦略 - どのプロセスがファイルを変更しようとしているのか、どうすればわかりますか?

git reset HEAD私が使用している多くの開発ツールの1つがプロジェクトにバグを発生させ、すべての作業を失うようにする奇妙なバグがあります。 git reflogをチェックすると、これを確認できます。

どのツールが犯人であるかを調べるために、削除プロセスを試しましたが、非常に時間がかかります。

.gitどのプロセスがディレクトリと対話するかを確認するために、ディレクトリへのすべての書き込みをブロックする方法があるかどうか疑問に思います。大丈夫ですか?

ベストアンサー1

inotifyツールを使用してこのディレクトリを監視できます。次にlsof結果を確認してください。今問題はどのイベントが欲しいのかです。それに応じて調整し、man inotifywaitより多くのイベントオプションを確認してください。私はファイルに書き込むことに決め、次のようにしました。

 inotifywait -m -r -e modify -e create --format %w%f ~/.git  | 
 while read file ; do
    lsof ${file} 2>/dev/null
 done

たとえば、実行すると、dd if=/dev/random of=/home/user/.git/test bs=1M count=10誰がそうしたのかがわかります。

おすすめ記事