OS XP,VC++6.0
ブレイクポイントを条件設定させたいのですが、どうすればよろしいのでしょうか?
#include stdafx.h
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
static int a[]={1,2,3,4,5,6,7,8,9} ;
int i,i_max = sizeof(a)/sizeof(int) ;
for(i = 0 ; i < i_max ; i++) {
a[i]+=3 ; // i==5 のときこの行でブレイクさせたい。
}
cout << a[5] << endl ;
return 0;
}
ソース画面でCtrl+Bのダイアログにそれっぽいのが。
もしくはASSERT マクロ。
もしくは自前でif文書いてブロックの中でブレーク。
もしくはそういう機能の充実したデバッガを使う。
OllyDbgとか…はアセンブリしかまともに使えないからアセンブリ分からないとダメ
か。
麩さんが書かれているのと同じ画面ですけれど、
メニューバーの「編集」-「ブレークポイント」から出てくるダイアログで出来ます。
このダイアログで条件を設定したいブレークポイントを選択して
データタブを選択します。
評価される式の所でi==5と書けば、出来るはずです。
ただし、条件設定をすると動作がガクッと遅くなります。
プログラムの規模にもよりますけれど、通常のデバッグの時よりも
待たされる感じなるので現実的な時間で戻ってくるかは確認して
見た方が良いと思いますよ。
条件ってこれ?
>// i==5 のときこの行でブレイクさせたい。
このぐらいなら
少し変更して
if(i==5)
{
何らかの処理(Printf(i==5);等)← ここでブレ-クする。
}
でもだめですか?
訂正です
「printf」ですね(^^;
スキップカウントで十分だと思うが
麩さん、PATIOさん、ITOさん、tetrapod さん、レスありがとうございます。
掲載した、プログラムは、やりたいことを説明したいので、
簡単にしたものです。(説明不足ですいません)
PATIOさんが書いてくださった、編集->ブレークポイント
あるいは、麩さんが書いてくださった<Ctrl+B>
でダイアログがあらわれ、設定することができました。
(行番号と条件式を指定する)
みなさん、ありがとうございました。
けわむら