私は、WindbgまたはVisual Studioを使用してダンプファイルを解析する際に、どのシンボルファイルが使用されるかに興味があります。私のアプリケーションがユーティリティライブラリを使用しており、ユーティリティライブラリに関連するプライベートシンボルファイルがあるとします。私のアプリケーションにクラッシュダンプがある場合、完全なコールスタックを分析するためにユーティリティライブラリのシンボルが必要です。しかし、時には、ビルド/ランタイム/デバッグ環境は、異なるバージョンのユーティリティライブラリシンボルである(確かに)異なるバージョンのユーティリティライブラリと共にインストールされます。デバッグシンボルの問題
私のアプリケーションをビルド(リンク)するためのユーティリティライブラリ(およびバージョンA)のバージョン(たとえばバージョンA)があり、そこに別のバージョン(たとえばバージョンB)のユーティリティライブラリ(および関連シンボル)クラッシュダンプを解析するときにWindbgの別のバージョン(たとえばバージョンC)のユーティリティライブラリ(および関連シンボル)を使用しています。
私の質問は、クラッシュがランタイムに生成されると、バージョンBシンボルがクラッシュダンプを生成するために使用されることです(シンボル情報でダンプを埋めるために)?しかし、Windbgデバッグ環境で異なるバージョンのシンボルCを使用すると、シンボルの不一致の問題が発生します。ビルドに使用するライブラリのバージョンは関係ありませんか?私の理解はすべて正しいですか?事前に
おかげで、 ジョージ
Hi MarkusQ、 (ビルド/実行/デバッグは異なるパーティによって実行され、まだ同期されていません)異なるバイナリが使用されます。私の質問は、ダンプが生成されるとき、ダンプはダンプ情報を埋めるためにランタイムライブラリシンボルに依存していますか? – George2
@George - 私は一般的に話していました。詳細はMatt Ellisの答えを参照してください。 (私は彼をupvotingしています) – MarkusQ
MarkusQ、私は彼のポストから私の答えを見つけませんでした - なぜ環境が(クラッシュダンプを生成する)シンボルの別のバージョンを使用している場合、シンボルの不一致があるしかし、ダンプを分析するためにwindbgを実行する環境は、別のバージョンのシンボルを使用していますか? – George2