miauのブログ

はてなダイアリー「miauの避難所」をはてなブログに移行しました

Windows で起動プロセスをトレース

Windows で何か操作を行った際に、アプリケーションが内部で別のコマンドを呼んだり、プロセスを起動しているケースは結構あると思います。現在起動しているプロセスは Process Explorer なんかで詳細な情報を見ることができますが、このツールはすぐに終わってしまうプロセスの情報を残すのには向きません。(私が使いこなせてないだけかもしれませんけど・・・。)

プロセスの起動ログを残すことが便利なわけですが、ググってもいいやり方が見つからなかったので、 Process Monitor でやってみました。

手順

  1. Process Monitor を起動すると Filter の設定ダイアログが表示されるので、ここで「Operation」「is」「Process Start」を追加して「OK」。
    • (2012-06-21 追記)「Process Create」じゃないと出ないやつもあるみたいです
  2. キャプチャが始まるので、この状態でコマンドを実行。
  3. コマンド実行が終わったら Ctrl+E でキャプチャを停止。
  4. リストビューを右クリック→「Select Columns...」で「Command Line」にチェック。

こうすると、その間に何のプロセスがどういう引数で起動されたかがわかります。「git stash」を実行した場合のログはこんなでした。


注意点

Process Monitor で上記の監視をすると、かなり PC の動作が重くなります。また、プロセス監視系のソフト(私の場合は社内用のポリシーモニター)が起動していると、Process Monitor が固まってしまうようなケースがありました。

      • -

ということで、前フリおわり。次はなぜ「git stash」の詳細を追いたくなったか書いてみようかと。