0

VS2010 で混合モード アプリケーションをデバッグしているときに、アンマネージ C++ DLL ソース ファイル (マネージ C# ラッパー クラスから呼び出された) に含まれるコード行に設定されたブレークポイントは、悪名高い「The breakpoint will not be hit currently. No Symbol has been問題の行のブレークポイントにマウスを合わせると、このドキュメント用にロードされました」という情報メッセージが表示されます。ブレークポイント自体は、通常の真っ赤なオーブではなく、黄色の情報三角形が付いた赤い円です。もちろん、デバッガーを実行してもブレークポイントにはヒットしません。この警告に対して私が見つけたほとんどの回答は、ブレークポイントが適切に設定されていない、予想される dll がロードされていない、関連する pdb ファイルが正しい場所にないなどを示しています。これはそうではありません。問題。アプリケーションは、参照された dll を正しくロードして実行します。dll と同じファイル日付の正しい pdb ファイルが、ターゲット dll 自体と共に実行可能ファイルの作業ディレクトリにあることを確認しました。デバッガーは単に dll のシンボルを読み込まず、dll はモジュール リストに表示されません。

この問題に対してオンラインで見つけた解決策はありません。dll は、'Debug->Windows->Modules' メニュー選択から利用可能なモジュール リストに表示されません...実際にはロードされています。ラッパー クラスに設定されたブレークポイントは正しく機能します。

bin および obj ディレクトリを削除し、ソリューションをクリーニングして再構築しても役に立ちません。

4

3 に答える 3

7

この問題の解決策は、アプリケーションのプロパティ ページの [デバッグ] タブにある [アンマネージ コードのデバッグを有効にする] フラグを設定することでした。

于 2012-09-18T02:59:49.863 に答える
-1

プログラムによってロードされていないため、コードにヒットしておらず、モジュールリストにdllが表示されていません。つまり、C#ラッパーが呼び出しているものが何であれ、それはそうではありません。あるいは、正しく呼び出されていない可能性があります。

于 2012-09-17T19:18:33.647 に答える
-2

エラーが何であるかは少し不明ですが、「ブレークポイントは現在ヒットしていません」というメッセージが表示されている場合、それはまさにその内容を意味します-設定したブレークポイントにヒットしていません. プログラムを振り返って、ブレークポイントがどこにあるか (余白に赤い点があるはずです) を確認してから、実際にブレークポイントに到達しているかどうかを確認してください。

于 2012-09-17T19:11:11.850 に答える