LoginSignup
1
1

More than 1 year has passed since last update.

Windbgを使用したClash Dumpの解析

Last updated at Posted at 2022-02-23

問題

アプリケーションが現在の環境(Windows10)で起動しませんでした。エラーメッセージも表示されず終了しており、ソースコードも持っていなかったため何が悪いか分かりませんでした。そこで、ダンプファイルを利用した解析を行いました。

環境

Windows10

ダンプファイルの出力設定

Applicationがclashした際に、ダンプファイルを出力する設定を行いました。
以下のAdobeのサイトを参考にしました。丁寧に書かれているので分かりやすいです。
WIndows MachineでClash dampを作成する方法

ダンプファイルの解析

出力されたファイルをWindbgを使用して解析します。WindbgはWindowsのデバッガーです。ダンプファイルの解析やアプリにアタッチしてリアルタイム解析することができます。また、Kernel modeとしてwindowsの深い部分も調べることができます。x64とx86がありますが、今回は32bitアプリケーションであったためx86の方を使用しました。
WindbgでDumpファイルを開き、!Analyze -vコマンドで解析を行うと以下の結果が表示されました。

*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

DEBUG_FLR_EXCEPTION_CODE(80040154) and the ".exr -1" ExceptionCode(e0434352) don't match

KEY_VALUES_STRING: 1
.
.
.

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 296

    Key  : CLR.BuiltBy
    Value: NET48REL1

    Key  : CLR.Engine
    Value: CLR

    Key  : CLR.Exception.System.Runtime.InteropServices.COMException._message
    Value: CLSID {AE784C6C-0155-11D3-B24B-0000F879F93B} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80040154 クラスが登録されていません (HRESULT からの例外:0x80040154 (REGDB_E_CLASSNOTREG))。

.
.
.

以上の結果から特定のCOMコンポーネントが足りず、起動できないことが分かりました。
COM(Component Object Model)はソフトの機能を外部からアクセスして使用する仕組みのことです。
ネットで調べた結果、特定のソフトが必要なことがわかりました。このソフトをインストールするとアプリケーションは正常に起動しました。
開発環境にはインストールされているが、ユーザー環境にはされていないソフトウェアに依存してしまうことはままありますね。

まとめ

アプリケーションが起動しない場合、Dumpファイルを解析することで解決できる場合があります。

参考

Analyze crash dump files by using WinDbg

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1