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&Aを見た人が検索しているワード

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

Qブレークポイントは現在の設定ではヒットしません。

初めて質問させて頂きます。
VB.net2005を使用しているのですが、
ブレークポイントを設定しても、

「ブレークポイントは現在の設定ではヒットしません。このドキュメントのシンボルが読み込まれません」

と表示され、ブレークポイントが使えません。

・構成マネージャ→Debug
・クリーン→リビルド
・[元のバージョンと完全に一地するソースファイルを必要とする]をオフ

は試したのですが、症状は変わらずです…。
以前は同じプログラムで普通にブレークポイントが使用できていたのですが
久しぶりにコードを編集しようと思ったときに上記のメッセージでデバッグが
出来ません。

「このドキュメントのシンボルが読み込まれません」が何のシンボルか分かれば
対処のヒントが得られると思うのですが…。

何か解決方法はありますでしょうか。

Aベストアンサー

WindowsCE5.0 なら、私の環境では用意できませんので解りませんが、検索して見た限りでは
ブレークポイントが機能しない問題が修正されたサービスパックがでているようですが
現在のサービスパックは、何が適用されているのでしょうか?

http://q.hatena.ne.jp/1254464294


http://www.google.com/search?hl=ja&rls=com.microsoft%3Aja%3AIE-ContextMenu&rlz=1I7TSJH_ja&q=Windows+CE+%E3%83%96%E3%83%AC%E3%83%BC%E3%82%AF%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%AF%E7%8F%BE%E5%9C%A8%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%A7%E3%81%AF%E3%83%92%E3%83%83%E3%83%88%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93&aq=f&aqi=&aql=&oq=

WindowsCE5.0 なら、私の環境では用意できませんので解りませんが、検索して見た限りでは
ブレークポイントが機能しない問題が修正されたサービスパックがでているようですが
現在のサービスパックは、何が適用されているのでしょうか?

http://q.hatena.ne.jp/1254464294


http://www.google.com/search?hl=ja&rls=com.microsoft%3Aja%3AIE-ContextMenu&rlz=1I7TSJH_ja&q=Windows+CE+%E3%83%96%E3%83%AC%E3%83%BC%E3%82%AF%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%AF%E7%8F%BE%E5%9C%A8%E3%81%AE%E8%A8%AD%...続きを読む

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

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

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

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

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

Aベストアンサー

こんちす

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

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

仕方ないですね

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

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

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

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

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

Aベストアンサー

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

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

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

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

Aベストアンサー

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

Qブレークポイントについて教えてください

組み込みソフト用のデバッカでH/WブレークポイントとS/Wブレークポイントという
区別がありますがこれらはどう違うのでしょうか?

Aベストアンサー

要は、ICEの事ですね。

基本的には、デバッガの機種毎に違いが有りますので、その辺をご了承下さい。

H/Wブレークポイントとは、ブレークアドレスを回路で検出してブレーク処理を行う方法。
S/Wブレークポイントとは、ブレークアドレスにインターラプトHALT等のコードを埋め込んで、ブレーク処理を行う方法。

特徴として、H/Wブレークの方が、外部ROM領域でもブレークを張れる事や、複雑な条件のブレークポイント設定を出来る事が多い。
逆に、S/Wブレークは、エミュレートROMエリアなら多数のブレークポイントを張る事が出来る。

こんな感じで、解かって頂けます?

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ポインタが
正しいアドレスかどうか、を先ず調べてください。
本当にわからない場合は、混合モードで追っていくものです。

QAccessでブレークポイントを設定してないのに一時停止してしまう

いつもお世話になってます。
Accessでブレークポイントを設定していなくて(デバック時はブレークポイントを設定していましたが、すべて解除した後に)
実行するとエラーでもないのに、エディターが現れて、その昔ブレークポイントがあった場所であろう行が黄色く反転してプログラムが一時停止してしまいます。
継続すれば問題なく流れるのですが・・・。
なぜこのような現象がおこるのでしょうか?

Aベストアンサー

単なる「VBのバグ」で「解除しても、ブレークポイントリストから消えるだけで、実際には解除されない事がある」だけです。

もう一度、その場所にブレークポイントを付け、すべてを保存して閉じ、Accessも終了させて下さい。

そして、もう一度Accessを起動して開き直し、その場所のブレークポイントを解除し、もう一度、すべてを保存して閉じ、Accessも終了させて下さい。

これでも直らない場合は「止まる行の前後1行を含めた合計3行を(メモ帖にコピペしてから)削除し、保存しすべて終了、開き直して削除した3行を(メモ帖からコピペして)元に戻し、保存しすべて終了、と言うのを試してみて下さい。

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

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

Aベストアンサー

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

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

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

Qブレークポイントが設定できない。。。

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

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

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

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

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

Aベストアンサー

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

Qあるexeファイルを実行するexeファイルを作りたい

いつもお世話になってます。

前回、http://okwave.jp/qa4949997.html にて質問させていただきました。最終的にはこのページのようなことをしたいのですが、とりあえずRubyファイルをコンパイルし、exeファイルに変換することはできました。

そこで次はそのexeファイルを実行させるC/C++コードが必要になってくるのですが、C/C++はあまり詳しくないのでよくわかりません。

ちなみにコマンド引数も使うexeファイルです。

よろしくお願いします。

Aベストアンサー

exeファイルを実行させたいということでしょうか?

「Exerb」というコンパイラは分からないので、
使えるかどうかは分からないのですが、
API関数に、
ShellExecute();
http://msdn.microsoft.com/ja-jp/library/cc422072.aspx
CreateProcess();
http://msdn.microsoft.com/ja-jp/library/cc429066.aspx
WinExec();
http://msdn.microsoft.com/ja-jp/library/cc429435.aspx
という関数があります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング