OSやアプリケーション・トラブル時の原因究明を加速するユーザモード・ダンプツール(User Mode Process Dumper)
User Mode Process Dumperはユーザーモードで動作するアプリケーションのトラブルシューティングを行うコマンドラインツールです。アプリケーションの異常動作時やハングアップ時の解析に必要な情報を稼働中のシステムから容易に取得することができます。

User Mode Process Dumper Version 9.0.3038.0の画面例
User Mode Process Dumperはどうして役立つの?
ユーザーモードで実行されているアプリケーションが「応答なし」と表示されてフリーズしたり、結果が返ってこないままで処理が先に進まなかったりするときの根本原因を調査する事ができます。User Mode Process Dumperはその時点のアプリケーションのプロセスを指定してプロセスダンプ(スナップショット)を採取することができます。そして、プロセスダンプを解析することで、アプリケーションが「応答なし」に至った原因を把握することができます。
プロセスダンプには、プロセス実行時のメモリ空間の内容が全て含まれており、その時にプロセスがどのように動いていたのかを知ることができます。User Mode Process Dumperで採取するプロセスダンプは対象のプロセスに影響を 与えないため、プロセスは動作し続けます。プロセスの状態を調べるにはプロセスダンプを1回でなく複数回採取することが効果的です。なぜなら、瞬間のメモリ状態だけでは情報が足りず、次の瞬間のメモリ状態を解析しなければ状況を把握できない場合もあるからです。複数回採取して解析することは、「応答なし」の状態が永久に続くのか、解決される見込みがあるのかの判断材料となるのです。

なるほどコラム
~ユーザーモード~

OSのシステムコードや、デバイスドライバなどのコードと、ユーザアプリケーションのコードは、完全に分離された別の領域で動作しています。これらの領域は、カーネルモード、ユーザーモードと呼ばれています。ほとんどのアプリケーションは、他のアプリケーションと相互に作用し、動作しています。間接的には「クライアント - サーバ」モデルのようにTCPやPipe通信によって連携したり、直接的には連携するアプリケーションとメモリ空間を共有したりする場合もあります。このようなとき、一つのプロセスが誤動作すると、通信による連携ができなくなったり、共用しているメモリ領域が破壊されたりして他のプロセスも影響を受けることがあります。
また、アプリケーションのプロセスは、ユーザーモードで動作し、カーネルモードに直接アクセスすることはできません。そのため、万一、ユーザーモードで動作しているアプリケーションが誤動作してもカーネルモードで動作しているシステムには影響が出ないようになっています。
