0

C++ で記述されたコードをデバッグしたいと考えています。問題は、dll が混在していることです。C++ と CLI (マネージ C++) の両方が含まれています。環境はVS2005です。

私のエントリ ポイントは、C++ で記述された非常に単純な実行可能プロジェクトであり、混合 dll でコードを開始するだけです。

問題はそれです:

  1. 両方のプロジェクトで「デバッグ タイプ」を Auto にすると、ブレークポイントにヒットしません。(後で編集: Auto は実行可能なプロジェクトの内容に基づいているため、これは正常です)。

  2. 「混合」に設定すると、ブレークポイントはヒットしますが、管理されていないウォッチは空です。たとえば、std::string の値がわかりません。ただし、int や bool などの基本型は確認できます。

4

6 に答える 6

2

また、デバッガーを Mixed に設定してみてください。これにより、マネージ コードとアンマネージ コードの両方のデバッグが可能になります。

于 2008-12-12T06:17:07.507 に答える
1

VS2005では、プロジェクトのプロパティ([デバッグ]タブ)で[デバッガーの種類]を[混合]に設定することで、混合モードでデバッグできます。時々、これらの種類のものは、素晴らしい再起動とクリーンな再構築の後に消えます。

それでも問題が解決しない場合は、アプリケーションの実行開始後にアプリケーションに接続してみてください([デバッグ] | [プロセスに接続])。「Attachto:」セクションの横にある中央の「Select」ボタンを押すと、デバッグモードを選択できます。

マイクロソフトからのすべての更新がありますか?あなたの問題を解決するものがあるかもしれません。

一般に、混合モードのデバッグはVS2008ではるかにうまく機能するようです。可能であればアップグレードすることをお勧めします。無料版もありますが、なんらかの形で限定されていると思います。

于 2009-05-13T22:37:20.087 に答える
0

マネージコード以上のものをデバッグするようにVisualStudioに指示する必要があります。ツールに移動| オプションで、[デバッグ]、[デバッグ]の順に選択します。全般的。[自分のコードだけを有効にする(管理対象のみ)]の横のチェックボックスをオフにします。

于 2008-12-02T19:40:06.490 に答える
0

LanceScのアドバイスは本当に役に立ちます。
ツールに移動| オプションで、[デバッグ]、[デバッグ]の順に選択します。全般的。
[マイコードのみを有効にする(管理対象のみ)]の横のチェックボックスをオフにします
。これにより、VS2008の問題が解決します。

于 2010-07-21T10:38:35.613 に答える
0

すべてのデバッグ オプションを有効にしましたか? これは、迷路のような C++ オプションをナビゲートしようとしたときに一部を「忘れる」ときに発生するのを見てきました。

于 2008-12-02T14:25:56.747 に答える
0

目の前に 2005/2008 環境はありませんが、アンマネージ デバッグを行うために、プロジェクト設定 (デバッグ タブだと思います) で有効にする必要があるオプションがあることを思い出すようです。これを有効にすると、問題は発生しません。

于 2008-12-02T14:44:05.540 に答える