5

Visual Studio 2010 を使用してクラッシュ ダンプ ファイル (ネイティブ コード) をデバッグすると、元のビルド フォルダーから C/C++ ソース ファイルを読み込もうとします (メッセージが表示されます"The source file is different from when the module was built. Would you like the debugger to use it anyway?")。メッセージは正しいです。ファイルは正しいバージョンではありません。

VS2010 でやりたいことは、ソース サーバーを使用してソース ファイルをチェックアウトすることです。ファイルが現在元のビルド場所に存在しない場合、VS2010 はソース サーバーを正しく使用し、(Subversion から) ファイルの適切なリビジョンを取得します。強制的に正しいリビジョンをチェックアウトさせるには、元のビルド場所からファイルを物理的に削除する必要があります。

補足として、VS2005 は希望どおりに動作します (まあ ... 私が希望するように、おそらく他の人が希望するようにではありません)。VS2005 は、元のビルド フォルダーにファイルのコピーが存在するかどうかに関係なく、常にソース管理から正しいリビジョンをチェックアウトします。

質問は次のいずれかに帰着すると思います。

  • ソース ファイルを見つけるための VS2010 の優先順位を変更できる設定はありますか?
  • または、問題のソース ファイルをチェックアウトするための選択肢/オプションを VS2010 に提供させることは可能ですか? (現在、この状況で私が目にする唯一のオプションは、参照することです。)
  • または、特定のパス (フォルダー) を検索から完全に除外することはできますか?
4

3 に答える 3

2

私はVS2010で同じ問題を抱えており、それを理解しようとしました。procmon を使用して devenv.exe を監視しましたが、アクセスしているファイルとレジストリ キーの順序に異常はありませんでした。VS2010 がソースを見つけられない場合にエラー レポートに表示される情報とほとんど同じです。私の解決策は、正常に動作する VS2005 を使用することです。MSDN で同様の (同じではないにしても) バグに関する通信を見たことがありますが、彼らは 2012 年の最終リリースで修正されると主張していました。

于 2012-11-05T14:44:21.137 に答える
0

クラッシュ ダンプ ファイルをデバッグしているときに、ローカル ソース ディレクトリを別の名前に変更できます。

または、ビルド ディレクトリをローカル ディレクトリとは別のパスに変更することもできます。

于 2013-11-26T02:20:43.763 に答える
0

これはおそらく少し複雑な解決策です

1) pdb ファイルをダウンロードして置き換えるスクリプトを作成します (.bat、python スクリプトなど)。

2) VS2010 内で新しい外部ツールを作成します (ツール -> 外部ツール -> 追加)。

3)ツールをスクリプトに向け、プロジェクト固有のものを引数として渡します

4) プロジェクトで、新しい外部ツールを呼び出すビルド後またはビルド前のステップを作成します (プロジェクト プロパティ -> ビルド イベント -> なんでも)

これは大変な作業ですが、少なくとも構築プロセスに完全に統合されます。

注: 少なくとも cpp ファイルをコンパイルしないと、ビルド後の手順が実行されないことに気付くことがあります。通常、F7 キーを押してソースをビルドしてから完全にビルドし、すべてが期待どおりに機能することを確認します。

于 2012-11-05T14:34:00.890 に答える