- 締切済み
VC6 でのデバッグ時にブレークポイントが設定できない
VC6でデバッグしようとしてます。 が、デバッグをスタートするまではブレークポイントがイネーブル状態にできるのですが、Goすると、ディスエーブル状態となり、ブレークポイントをイネーブルにすることも削除することも、また、そのファイル内の別のところにブレークポイントを設定することもできません。 複数のプロジェクトをひとつのワークスペースにしています。 エクセルのプロセスにアタッチしてDLLのデバッグをしたいのですが。 原因として何が考えられるでしょうか? 設定など何かございましたら、ご指南お願いします
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- clsdi99
- ベストアンサー率63% (31/49)
DLLではなくEXEでしたか。 大元のEXEからはどのようにその対象EXEを起動させているのでしょうか? CreateProcessの呼び方でももしかしたら変わるかもしれません。 ちなみに、VC内のワークスペースが同じとかそうでないとかは今回の件に関しては関係ないと思います。 ためしに、対象EXEのブレークポイントを張りたい場所に __asm int 3; とか書いてみてらいかがですか?強制的にブレークされると思うのですが。。。
- FAY
- ベストアンサー率49% (95/193)
[プロジェクト]メニューの[設定]で左側の[設定の対象]をブレークが効くDLLにする。で、右側の[デバッグ]タブの[カテゴリ]を「追加するDLL」にし、[モジュール]にブレークが効かないDLLを追加してみるとか。
補足
レスありがとうございます 下記回答への補足のような状況です
- clsdi99
- ベストアンサー率63% (31/49)
DLLのモジュールにブレークポイントを張る場合、そのモジュールがロードされている必要があると思います。 VC6のヘルプに書いてあるので読んでみて下さい。 「DLL のブレークポイントが機能しない原因について」
補足
ワークスペースにプロジェクトが4つあり、内3つがDLL、1つがEXEなのですが、そのEXEのプロジェクト内のファイルにブレークがかけられません。 大元の起動はひとつのVCを立ち上げ、それに大元の起動アプリケーションを登録し、デバッグ実行します。 その、アプリケーションの操作途中で立ち上げられるEXEが、問題のプロジェクトです。 そのEXEのデバッグにVCをもうひとつ立ち上げ、アタッチで、その対象プロセスを指示して実行しようとしています。 (プロセス間でRPC通信をしています。) が、その問題のEXEから呼ばれるDLLに含まれるファイルではブレークがおけますが、EXEのファイルにはおけません。 何かありましたらお願いします
- Trick--o--
- ベストアンサー率20% (413/2034)
アクティブな構成がリリースになってませんか? /ビルドにデバッグ情報が含まれていますか? ビルド→アクティブな構成の設定 の選択されている構成と プロジェクト→設定→リンク(タブ) の「デバッグ情報を生成する」チェックボックス を確認してください。
補足
レスありがとうございます。 改めて確認しましたが、デバッグビルドになっており、デバッグ情報生成のチェックボックスはチェックされていました。 ブレークポイントが設定できるファイルもあります。<これが当然だと思うのですが しかし、同じワークスペースにある別プロジェクトで、ブレーク設定可能なファイルのプロジェクト設定と、設定が同じにも関わらずブレーク設定の出来ないファイルがあります。
補足
レスありがとうございます。 EXEからは、RPCを通じて、すでに起動されているサービスアプリケーションからプロセス起動しています。 (別PCでTCP/IPを使って動作させることを考えてます) 確かにワークスペースが同じことは関係ないですけどね。 個々のプロジェクトの設定で何かあるのかな?と。 強制ブレークですね。忘れてました。ありがとうございます。