VC++6.0、OSはWindows2000 を使用しています。
MFCのダイアログベースのEXEを造っています。
デバッグするためにブレークポイントを設定したのですが、実行時に
止まりません。
デバッグモードでリビルドし、pdbファイルも作成されています。
デバッグ対象のEXEは ~/debug/xxx.exe となっているのも確認しています。

デバッグ実行前に設定すると、赤丸でちゃんとマークされますが、
実行すると以下の文言のメッセージボックスが表示され、設定した
ブレークポイントは無効になっています。

「1つ以上のブレークポイントが設定できませんでした。
これらのブレークポイントは無効です。実行プログラムはプログラムの始めで
停止します。」

この後、実行中にブレークポイントを設定しようとしてもできません。

考えられる原因としては何があるでしょうか?
識者の方、ご教授願います。

A 回答 (1件)

おそらくコードに反映されていないソースにブレークポイントを置いた場合にそのようになるのだと思います。


例えば、リンクされていないファイルを開いてブレークを置けば確実に同じ現象が起きますし、そうでなくても、コメントや#if 0などで無効になっている行などでも起きます。
でも、それ以外の場合でも起きてしまった経験があって、プロジェクトを作成しなおしてうまくいったことがあります。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
今回の私の場合は、「それ以外の場合でも起きてしまった」という状況です。
うーん、やっぱプロジェクトごと作成しなおさなきゃ駄目かな。。。
頑張ってみます。
ありがとうございました。

お礼日時:2001/09/26 16:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【デバッグ】変数の値が変わるとブレーク、ある値になったときにブレーク

VC++2005で、ウオッチウインドウに変数を表示させる方法はわかりますが、ある変数の値が変わったりとか、ある値になったときにブレークする機能ってあるのでしょうか?

※昔、何かの開発ツールでそのような機能を見たことがあったので・・・

Aベストアンサー

ブレークポイントを設定して、ソースリストのブレークポイントのマークを右クリックして、「条件」でブレークポイントの停止条件を設定できます。
ブレークポイントの一覧表示からも出来ます。

QVSのデバッグ実行とデバッグなし実行について

あいまいな質問になってしまい申しわけありませんが、何か手がかりになるような事でも知っている方がいらっしゃればと思い投稿しました。

VisualStudio2008 ProfessionalEditionで、C#による開発を行っています。

リリースビルドを行い、デバッグ実行(VS上でF5キー押下)すると正常に動作するのですが、デバッグなし実行(Ctrl+F5)や生成されたexeの起動を行うと途中でフリーズしてしまいます。

何か良い方法があればよろしくお願いします。

Aベストアンサー

こんちす

本件、デバッカ無しでのデバックになりますので、
(1)画面に何か表示できる
(2)ファイルに何か書き込める
アプリでしたら
(私は普通(2)を書き出す関数(クラスでしょうかww)を作成する)

デバック用の関数を作成し、どこで止まるか確認
(ソースのいたる所に(2)をばらまく)
するしかないと思います。

仕方ないですね

QDebug.exe実行時にWinMainCRTStartup()でエラーが発生する

WindowsXP VisualC++.net2003 で開発をしています。
VC上で実行すると問題なく実行できるのですが、Debugファイルから実行するとエラーが発生します。

エラーの発生場所は
setSBUpLow() 行409+ 0x9となっています。
この関数はWinMainCRTStartup()で呼び出されています。この関数はAPIです。
Windowを初期化するときに自動的に呼ばれているようです。

自分のプログラムのどの部分でエラーが起こっているか調べたところ、クラスのコンストラクタ内で行っている次の処理が原因のようです。

 int **test;

 test= new int*[10];
 for(int i = 0; i < 10; i++){
  test[i] = new int[10];
 }

この部分をコメントアウトするとエラーが発生しなくなります。
new演算子でメモリを確保しているときにエラーが発生
しているようです。

なぜ、Debug.exeで実行したときだけ エラーがでるのでしょうか?
また、エラーが発生しないようにするにはどうすればいいのでしょうか?

WindowsXP VisualC++.net2003 で開発をしています。
VC上で実行すると問題なく実行できるのですが、Debugファイルから実行するとエラーが発生します。

エラーの発生場所は
setSBUpLow() 行409+ 0x9となっています。
この関数はWinMainCRTStartup()で呼び出されています。この関数はAPIです。
Windowを初期化するときに自動的に呼ばれているようです。

自分のプログラムのどの部分でエラーが起こっているか調べたところ、クラスのコンストラクタ内で行っている次の処理が原因のようです。

 int **te...続きを読む

Aベストアンサー

>Debug.exeで実行したときだけ エラーがでるのでしょうか?
Debug版とRelease版は別物だからです。

DebugでエラーがでるけどReleaseだとでなくなる。
逆にReleaseだと止まるけどDebugだと問題なく起動する。
VC++でプログラムしているとよくあることですが、私の経験的に
どこかであやまってポインタを参照しているケースがほとんどです。

class A;
class B;
例えばclass BのコンストラクタがクラスAのメモリを破壊している等。

どこを直せばいいかといっても作った本人が一番詳しいわけで
具体的にどこを直せばいいかは、恐らくソース全体をみないと分かりません。
問題のメモリがどのタイミングでどのメモリが書き換えられているか
や、エラーが発生したときthisポインタが
正しいアドレスかどうか、を先ず調べてください。
本当にわからない場合は、混合モードで追っていくものです。

Q1つ以上のブレークポイントが設定できませんでした。

Visual Studio C++ 6.0 でプログラミングをしています。
以前まではブレークポイントが普通に使えたのですが、最近ブレークポイントを設定すると

『1つ以上のブレークポイントが設定できませんでした。これらのブレークポイントは無効です。実行プログラムはプログラムの始めで停止します。』

という注意書きが現れ、ブレークポイントが使えません。
ブレークポイント無しでは問題なくビルドでき実行もできます。
恐らく原因として考えられるのが、友人がリリースモードの方が処理が早いとか言って設定をいじり、うまくいかなかったことだと思います。

『構成』『アクティブな構成の設定』を見てもデバックモードになっていました。
どなたかご回答よろしくお願い致します。
OSはXP、openCVを使用しています。

Aベストアンサー

takashiyhadarさん、今晩は。
私は同じようなプログラムを作るときは、プロジェクトを使いまわしています。
即ち、あるプロジェクトでa.cppを作り、テストが終わったら、a.cppをプロジェクトから外し、b.cppをプロジェクトに追加する。
このとき、a.cppにブレークポイントを設定したままだったらb.cppのテスト時にご提示のようなメッセージが表示されます。
貴兄の現象が、前期の場合に当てはまるかどうかわかりませんが、もし当てはまる場合、一旦全てのブレークポイントを解除して、新たに設定しなおすとこの現象は出なくなります。

Qダイアログベースのexeで最適なグラフ表示方法

C++で外部I/Oを制御し、温度入力とヒーター等のON/OFFを行う制御ソフトを作成しました。
ボタン操作などが多い都合上ダイアログベースのexeにしたのですが、制御履歴をグラフィカルに表示したいと考えています。
現状はピクチャーコントロールに固定の倍率で描画する方法を考えていますが、スクロールバーを表示してスクロールが出来ればさらに便利になります。
良い方法をご存じの方いらっしゃいましたら教えて頂けないでしょうか。

Aベストアンサー

CScrollViewのようなコントロールですか?
グラフコントロールにスクロールバーがあると言う意味でしょうか?
そうなると申し訳ないのですが、参考URLに沢山グラフコントロールがありますので、今回に適したものを選択してもらうしかありません。

また、CScrollViewのようなというのが、CViewから派生してChildFrameに貼り付けられると言う意味でしたら、どのコントロールでも要はただのウィンドウですので、お好きなところに貼り付けられます。
(ただし、MFCのドキュメントビューアーキテクチャのビューとしてではなく。例えばビューの子ウィンドウとして貼り付けるイメージです)

参考URL:http://www.codeguru.com/cpp/controls/controls/


人気Q&Aランキング

おすすめ情報