ページ 1 / 1
[VC++]ブレークポイントからの再開はできない?
Posted: 2015年12月25日(金) 09:55
by moba
お世話になっています。
とても簡単なことだと思うのですが、検索しても分からなかったので質問させてください。
VC++(2010Edition)で、ウォッチ機能を使うために、キーボードのBを押したらブレークポイントに来るようにしました。他にブレークポイントはつけていません。
問題は、一度ブレークポイントに来た後、動作を再開してほしいことです。
ステップ実行と言うのでしょうか、1行ずつ処理する機能はありますが、引き続き(分岐してブレークポイントに来るまで)処理を続けて、止まらないようにすることができませんでした。(※再開したいのはウィンドウに画像を表示したりするループです。)
やり方があれば、教えていただけませんか。
Re: [VC++]ブレークポイントからの再開はできない?
Posted: 2015年12月25日(金) 13:55
by softya(ソフト屋)
F5を押してみてください。
Re: [VC++]ブレークポイントからの再開はできない?
Posted: 2015年12月25日(金) 17:14
by moba
ありがとうございます。1度F5を押すと
スレッド '○○' (▲▼) はコード 0 (0x0) で終了しました。
と出るので諦めていましたが、2回目を押すと再開してくれました!
Re: [VC++]ブレークポイントからの再開はできない?
Posted: 2015年12月25日(金) 21:11
by softya(ソフト屋)
二回目というのは気になりますね。
実害がないとか、理由が分かっているなら別に良いですが。
Re: [VC++]ブレークポイントからの再開はできない?
Posted: 2015年12月26日(土) 15:38
by moba
解決にした後ですみません。
< 2回目というのは気になりますね
コードを変えると、2回目でもダメになってしまいました。
どうも、F5で再開した後、またすぐにブレークポイントに辿り着いてしまったようです。
コード:
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 )
{
cont->All();
fps.Update(); //更新
fps.Draw(); //デバッグ用
if(CheckHitKey(KEY_INPUT_B) != 0)
{
int a = 0;//ここにブレークポイント
}
fps.Wait(); //待機
}
このように書くと、一度Bを押すと、Bを話した状態でF5を押しても、一瞬でブレークポイントに戻ってしまいました。
Bを押すとブレークポイントに着き、F5で再開できるようにするには、どのようにすればいいでしょうか。
Re: [VC++]ブレークポイントからの再開はできない?
Posted: 2015年12月26日(土) 20:12
by softya(ソフト屋)
http://dixq.net/g/02_09.html
こちらのフレーム数をカウントする仕組みを使えば、1カウント目だけブレークすれば大丈夫だと思います。
あるいは、一度キーを離すまでブレークしない仕組みを入れるかですね。
Re: [VC++]ブレークポイントからの再開はできない?
Posted: 2015年12月26日(土) 23:28
by moba
ありがとうございます。
そういえば、元々その仕組みを使っていたので、1F目のときのみ分岐するようにします。
ウォッチウィンドウを見ると、F5を見るたびに
Bの入力フレーム数が1ずつ増えていたと思うのですが、
なぜBは押したままということになっていたのでしょうか。
上記のcont->All()から入力フレーム数を更新していますが、
F5を押した時点でBキーから指を話しています。
Re: [VC++]ブレークポイントからの再開はできない?
Posted: 2015年12月26日(土) 23:59
by softya(ソフト屋)
まだキー入力として残っているんだと思います。
ライブラリの中を調べてませんが、リアルタイムに取得するAPIを利用していないじゃ無いんじゃないかと。
気になるならライブラリのソースコードをみてください。
Re: [VC++]ブレークポイントからの再開はできない?
Posted: 2015年12月27日(日) 17:10
by moba
ありがとうございます。そこまで気にはならないので調べませんね…