1

Microsoft ツールを使って、シンボルとソース サーバーをセットアップする実験を始めたところです。p4index を使用してソース ファイルのインデックスを作成し、.pdb ファイルを更新して、シンボル サーバーを更新しました。私のシンボルサーバーを使用するようにビジュアルスタジオを設定しました。

すべて正常に動作します: exe をスタンドアロン exe としてステップ デバッグすると、pdb が読み込まれ、正しいバージョンのソース コードが perforce から一時的な場所にエクスポートされ、Visual Studio 内に表示されます。

じゃあ何が問題なの?exe をビルドしたマシンでデバッグしようとすると、Visual Studio はソース コードをローカルで見つけます。問題は、これが変更されたファイルであり、exe がビルドされた時点に対応する正しいバージョンのソースではないことです。VStudio はこれを認識しており、「モジュールがビルドされたときとはソース ファイルが異なります。デバッガーでそれを使用しますか?」というリクエスターをポップアップ表示します。

[いいえ] をクリックすると、ソースを手動で見つけるためのファイル ダイアログが表示されます。

vstudio をソース サーバーの使用にフォールバックさせる方法、またはできればローカルで検索する前にソース サーバーを最初に使用する方法はありますか?

Visual Studio 2012 と perforce を使用しています

4

2 に答える 2

1

同じ問題が発生した後、最終的に、pdb/デバッガーがそれを見つけると予想される場所にファイルが既に存在する場合、Visual Studio は P4 PRINT コマンドを実行しないという事実に絞り込みました。

たとえば、インデックス化されたソース ファイルが C:\Toto\Source.cpp にあった場合、Visual が検索するときにこのファイルが存在するだけで、P4 PRINT が妨げられます。

名前を変更すると、ビジュアルは別の無関係なフォルダー (シンボル キャッシュ パス) にあるファイルを正しく印刷します。

これは修正ではなく、単なる理由ですが、まだ調査中です。この動作は、windbg にはありません。

于 2015-11-25T17:09:25.847 に答える