ノートPCの液晶画面に原色の縦線がっ(-_-;)
買って一年も経ってないのに・・・気分がブルーです(T_T)
話はさておき、
前回の記事では、WES7で動かすアプリの動作を、
Sysinternalsツールの一つ、Process Monitorでモニタリングしました。
今回はモニタリングした結果の解析です。
通常このツールは、エラーなどが発生した際の原因特定に使われることもあり、
モニタリング結果の解析のための仕組みが備わっています。
例えば、ツールバーは以下のようになっています。

真ん中付近に、ライフルのスコープみたいなマークがありますが、
これはVisual StudioのSpy++ツールを使用したことがある方は、
ピンときますよね。
このスコープをドラッグして、
解析したい対象のアプリのウィンドウにドロップすると、
その解析対象のイベントのみが表示されるようフィルタリングされます。
まぁ、WES7で動かすための解析では、この機能は使わないんですが(笑)。
先ほどのスコープのアイコンの隣にある、
プロセスツリーを表示するアイコンをクリックしてください。
そうすると、モニタリング中に起動していたプロセスの一覧が表示されます。
対象アプリケーションのプロセスID(プロセス名の隣に記載されている数字)をメモっておきます。
例えば、この場合ではmspaintが4776というプロセスIDで動いていました。
つぎに、プロセスツリーを閉じ、フィルターアイコンをクリックし、
フィルター用ダイアログを表示します。
まず、先ほど特定したプロセスIDのフィルターを作成します。

ダイアログの上段の指定が、[PID is 4776]となるように
コンボボックスとエディットボックスを設定します。
その後、[Add]ボタンをクリックしてください。
リストが指定したプロセスIDが表示されるようフィルタリングされるので、
そのリストの中から、Operationが[Load Image]となっている行をみつけだし
右クリックメニューを表示して、[Include 'Load Image']を選択します。

今度は、リストが指定したIDのLoad Imageイベントのみが表示されます。
次に同様の処理で、Result がSUCCESSの行を見つけて、
右クリックメニューを表示して、SUCCESSのフィルタも追加してください。
続いて[Tools]メニューから[Count Occurrences]を選択します。
Count Value Occurrencesダイアログが表示されるので、
[Column]コンボ ボックスから[Path]を選択します。
そして[Count]ボタンをクリックします。

最後に[Save]ボタンをクリックし、ファイル名を指定してリストのデータをCSV保存します。
この一連の操作で何をしたかというと、
対象プロセスの実行時IDをもとに、
プロセスがDLLのロードに成功したイベントを探し出し、
ロードされたDLLのPathを列挙してファイル保存しています。
次回はこの出力結果をもとに、
アプリケーションに必要なパッケージを選定します。
買って一年も経ってないのに・・・気分がブルーです(T_T)
話はさておき、
前回の記事では、WES7で動かすアプリの動作を、
Sysinternalsツールの一つ、Process Monitorでモニタリングしました。
今回はモニタリングした結果の解析です。
通常このツールは、エラーなどが発生した際の原因特定に使われることもあり、
モニタリング結果の解析のための仕組みが備わっています。
例えば、ツールバーは以下のようになっています。

真ん中付近に、ライフルのスコープみたいなマークがありますが、
これはVisual StudioのSpy++ツールを使用したことがある方は、
ピンときますよね。
このスコープをドラッグして、
解析したい対象のアプリのウィンドウにドロップすると、
その解析対象のイベントのみが表示されるようフィルタリングされます。
まぁ、WES7で動かすための解析では、この機能は使わないんですが(笑)。
先ほどのスコープのアイコンの隣にある、
プロセスツリーを表示するアイコンをクリックしてください。
そうすると、モニタリング中に起動していたプロセスの一覧が表示されます。
対象アプリケーションのプロセスID(プロセス名の隣に記載されている数字)をメモっておきます。
例えば、この場合ではmspaintが4776というプロセスIDで動いていました。
つぎに、プロセスツリーを閉じ、フィルターアイコンをクリックし、
フィルター用ダイアログを表示します。
まず、先ほど特定したプロセスIDのフィルターを作成します。

ダイアログの上段の指定が、[PID is 4776]となるように
コンボボックスとエディットボックスを設定します。
その後、[Add]ボタンをクリックしてください。
リストが指定したプロセスIDが表示されるようフィルタリングされるので、
そのリストの中から、Operationが[Load Image]となっている行をみつけだし
右クリックメニューを表示して、[Include 'Load Image']を選択します。

今度は、リストが指定したIDのLoad Imageイベントのみが表示されます。
次に同様の処理で、Result がSUCCESSの行を見つけて、
右クリックメニューを表示して、SUCCESSのフィルタも追加してください。
続いて[Tools]メニューから[Count Occurrences]を選択します。
Count Value Occurrencesダイアログが表示されるので、
[Column]コンボ ボックスから[Path]を選択します。
そして[Count]ボタンをクリックします。

最後に[Save]ボタンをクリックし、ファイル名を指定してリストのデータをCSV保存します。
この一連の操作で何をしたかというと、
対象プロセスの実行時IDをもとに、
プロセスがDLLのロードに成功したイベントを探し出し、
ロードされたDLLのPathを列挙してファイル保存しています。
次回はこの出力結果をもとに、
アプリケーションに必要なパッケージを選定します。