環境はvisual studio 2005 でC#のプログラムを開発時なんですが。
具体的には過去にVC 6辺りのVC++で作成したDLLのプロジェクトをvisual studio 2005 に持ってきて作成します。
このDLLをこれまたvisual studio 2005 で作成しているC#プログラムで先のDLLを呼び出す構成です。
此処でDLLプロジェクト内でC#プログラムを実行プログラムに指定しDLLのコード内に幾つかブレイクポイントを設定し実行したのですが実行するとブレイクポイントの表示が薄くなりその前に黄色三角に囲まれた!マークが表示されタイトルの、
「このドキュメントのシンボルが読み込まれていません」
が表示されてブレイクポイントが無効になってしまう。
こういう時は大抵、プロジェクトの作成モードがDebugになっていなかったりしょうもない設定ミスってのが多いのですが今回は全てを疑ってもわからなくて。
具体的には次のポイントをチェック
- Debugモードで作成実行していない。
- 実際に今、デバック対象となっているDLLと実行時に呼ばれているDLLが違う。
- アンマネージなDLLなので当然、プロパティのデバッガタイプがアンマネージもしくは混合になっているか?
(デフォルトは自動だったと思いますが、このケースだと混合にしておく)
ここまで調べても全然条件に当てはまらない・・・・
ネットで調べてみてもMicrosoftデバッガのバグです。みたいな回答になってるし。
でも何か見落としているところは無いかなぁ~なんて思って考えてたんですが、デバッグを行おうとしているDLLのプロジェクトばかりに注目しているけどDLL側で設定している実行モジュールの方の設定はどうなってるかみてみると。
有りました(^_-)
プロジェクトのプロパティーページにちゃんと。
[プロジェクト]→[プロパティ]、ここでプロパティウインドウの左側にある構成プロパティでデバッグを選択。
すると此処にもちゃんとありました。
「アンマネージコードのデバッグ」って。
それをチェックしてから再ビルド。
ビルドした実行モジュールをDLL側で再度設定。
実行するとDLL内のブレイクポイントでちゃんと止まりました(^_^.)
あぁ~久々にvisual studio 使ったらなんかすっかり忘れている自分にショックでした。
でわでわ