6

「シンボル サーバーを使用する」オプションを設定し、正しいシンボルが読み込まれたことを確認するために、シンボル キャッシュを削除しました。ASP.NET アプリケーションを実行すると、シンボルがダウンロードされていることを示すポップアップが表示されました。

「自分のコードのみ」を無効にし、「.NET Framework ソースのステッピングを有効にする」を有効にしました。以前は、.NET コード ライブラリをステップ実行するにはこれで十分でした。

IntelliTrace の使用を中断すると、コール スタック内のすべての非ユーザーコードがグレー表示されます。たとえば、System.Web.Dll および mscorlib の場合は「シンボルがロードされていません」、System..dll および System.Xml.dll の場合は「シンボルがロードされています」と表示されるモジュール ウィンドウを確認します。

通常は、右クリックして [シンボルの読み込み] を選択できますが、これはグレー表示されています。これを再び機能させるためのアイデアはありますか?

http://www.undermyhat.org/blog/wp-content/uploads/2011/03/Grayed-out-Load-Symbols.png

4

2 に答える 2

3

シンボルの読み込みは面倒な場合があり、常にすべてのシンボル テーブルに関心があるとは限らないため、特定のシンボル テーブルを手動で読み込むオプションがあります。グレー表示されている理由は、それらを自動的にロードしているためです。これは、手動で設定し、オプションを有効にしたスクリーン ショットです。自動ロード

この状態になるには、Symbol Settings ですべてのシンボルを読み込むように設定し、NHibernate をリストに追加しました。NHibernate を中断すると、シンボルがグレー表示され、手動で読み込むことができます。 Hibernate ビュー

次に、それらをロードするオプションがあります。 ここに画像の説明を入力

于 2011-03-06T20:01:53.127 に答える
3

リッチの答えは正しい方向を示してくれましたが、それは解決策ではありませんでした. 何が起こっていたかは次のとおりです。

IntelliTrace の履歴イベントで [コール スタック] をクリックすると、スタック トレースが表示されます。通常、スタック トレースでは、シンボルを右クリックして読み込むことができますが、次のようにします。

  • IntelliTrace の履歴イベントから、これは常に無効になります。コードを正常に中断すると、これが機能します。
  • 履歴イベント (これもグレー表示) では、モジュール ビューからシンボルを読み込むことさえできません。
  • モジュールが「常に手動でロードする」(適切な名前は「デフォルト」です。Ritch の投稿のスクリーンショットを参照) と指定されている場合、モジュールは自動的にロードされません。その後、手動でロードしても、フレームワーク コードにステップ インすることはできません (少なくとも、私にはできませんでした。おそらく VS 2010 のバグです)。これを解決するには:
    • [常に自動的に読み込む] を選択します (注: これを選択したことを示すチェックマークは表示されません)。
    • ブレーク実行と
    • (ほぼ間違いなく) 開発用 Web サーバーを停止します (これは場合によっては役に立ちました)
    • デバッグを再開します。

正直なところ、Visual Studio のこの動作は比較的わかりにくいと思います。以前は、設定を正しく設定できたのは幸運だったようです。これは「ただ動く」のではなく、正しい手順を丁寧に踏んでこそ期待通りに動くのです。

于 2011-03-10T13:33:56.713 に答える