ブレークポイントについて

解決


S・F  2004-11-19 01:30:56  No: 55211

はじめまして。VC++初心者の者です。

Windows2000&VC++6.0でプログラムを作成しております。
ブレイクポイントを設定してデバッグモードで実行したいのですが、
実行すると、ブレイクポイントを設定した場所(●)が白色になり、
「一つ以上のブレイクポイントを設定できませんでした。
これらのブレイクポイントは無効です・・・。」
という、エラーダイアログが表示されてしまいます。

上記のようなブレークポイントの機能が無効になってしまう
原因がわかる方いらっしゃいますか?

VC++に詳しい方、是非アドバイスを頂けないでしょうか。
宜しくお願い致します。


pick  2004-11-19 03:07:50  No: 55212

Release版でデバッグしようとしていませんか?

メニュー → ビルド → アクティブな構成の設定 で,
"Win32 - Debug" を選択しているか確認してください。


pick  2004-11-19 03:13:00  No: 55213

間違えました。

> "Win32 - Debug" を選択しているか確認してください。

じゃなくて、"プロジェクト名 - Win32 Debug" でした。


S・F  2004-11-19 03:25:38  No: 55214

>Release版でデバッグしようとしていませんか?
>
>メニュー → ビルド → アクティブな構成の設定 で,
>"Win32 - Debug" を選択しているか確認してください。

確認したのですが、"Win32 - Debug"になっていました。

最初の投稿で書き忘れたのですが、DLLのブレイクポイントです。


KING・王  2004-11-19 04:38:17  No: 55215

デバッグ開始時、メモリ上にロードさていないところに、
ブレークポイントを置いているためだと思います。
(DLLなので、遅延ロードなどになっていませんか?)

適当に操作を行い、DLLをメモリ上にロードさせてから、
一旦デバッグを停止させ(デバッグ状態のまま)、
その状態から、再度ファイルを開いて、ブレークポイントを設定させれば、
恐らく設定できると思います。

#私も、昔、これで悩んだことがあります。


S・F  2004-11-19 20:01:45  No: 55216

>デバッグ開始時、メモリ上にロードさていないところに、
>ブレークポイントを置いているためだと思います。
>(DLLなので、遅延ロードなどになっていませんか?)

KING・王さんご指摘有難う御座います。
これも原因の一つだと思います。

デバックを開始すると混合モードでステップ実行が開始になり
別のプログラムが呼ばれて、そのプログラムがブレークポイントを
設定したいDLLを呼ぶんですが、こういった場合は
ブレークポイントは設定できないんですかね!?


pick  2004-11-19 21:19:15  No: 55217

別の掲示板で同じような内容がとりあげられています。
DLLではなさそうですが、参考にしてみて下さい。

http://www.mtakahashi.com/cgi.cgi?12396

自分はDLLに関してあまり知識が無いので・・・
お役に立てず申し訳ないです。


KING・王  2004-11-19 21:57:59  No: 55218

> そのプログラムがブレークポイントを設定したいDLLを呼ぶんですが

(1)まずDLL(の中の関数)を呼ぶ、もとのプログラム側のところに、
ブレイクポイントをおき、そこで、一旦ブレイクさせる。

(2)そこから、ステップインすれば、恐らく、DLL内のソースに入る。

(3)この時点で、はじめてDLLがメモリにロードされた状態になるので、
再度、DLL内のソースにブレイクポイントを設定する。

(4)デバッグを続ける。

これで、OKだと思います。

#ただし、これって、一旦デバッグを中止すると毎回、(1)の作業から、
#やりなおしになるので、めんどくさいですが。。。


S・F  2004-11-19 22:07:21  No: 55219

>DLLではなさそうですが、参考にしてみて下さい。
pickさん有難う御座います。参考にしてみます。

KING・王 さん詳細有難う御座います。
試してみます。


S・F  2004-11-23 05:18:35  No: 55220

解決致しました。
情報提供して下さった方々有難う御座いました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加