Visual Studio 2010 を使用して、大部分が C で記述されたアプリケーションをデバッグしています。通常は、デバッガーを問題なくアタッチできますが、C++ / CLI で記述されたライブラリにリンクすると、いくつかの問題が発生します。
フラグを指定してライブラリをコンパイルすると/clr
(最終的には、まだ作成されていないライブラリとしてこれを実行する必要があります)、ライブラリ呼び出しとは関係のない部分も含めて、C アプリケーション全体をデバッグするすべての機能が失われます。赤いブレーク ポイントの円があるはずの場所に、黄色の三角形と感嘆符が付いた空の円が表示されます。その上にカーソルを置くと、「ブレークポイントは現在ヒットしません。この行に関連付けられている実行可能コードはありません。考えられる原因には、条件付きコンパイルまたはコンパイラの最適化が含まれます。」というツール ヒントのみが表示されます。
次に、フラグなしでコンパイルされたまったく同じライブラリにリンクすると/clr
、アプリケーションを再びデバッグできます。
C++ / CLI で記述されたライブラリを Visual Studio でデバッグできない可能性が高いことは理解していますが、それで問題ありません。アプリケーションの残りの部分をデバッグする機能を維持し、少なくとも外部ライブラリへの呼び出しの結果を確認したいだけです。
もう 1 つの複雑な要因は、このプロジェクトがビジュアル スタジオによってビルドされていないことです。を使用する外部の make システムを使用しcl
てコンパイルされるため、コンパイラに発行する必要があるコマンドをそのようにカスタマイズできます。
現在、ライブラリを思い通りにデバッグできない理由を知っている人はいますか? どうすればよいかアドバイスはありますか?