반복적으로 호출되어 디버깅에 상당히 어려움이 있는 경우에 활용가능한 팁을 소개한다.
바로 중단점(브레이크 포인트)의 조건을 활용하여, 해당 조건이 일치할 경우에 디버깅을 하는 방법이다.
int _tmain(int argc, _TCHAR* argv[])
{
int i;
for(i=0; i<1000; i++)
{
//반복 루프 수행 중 500번째 반복됐을때 값을 알고 싶을때..
a = ( a * 3 -20 ) * 2;
}
return 0;
}
위와 같은 코드에서 i 가 500이 되었을때 루프내 값을 알고 싶다면 500번의 루프를 돌리던지, 코드에 if(i == 500) 과 같은 코드를 삽입해서 브레이크를 거는 방법이 있다.
하지만 VS에는 중단점에서 조건을 체크하는 기능을 따로 제공되기때문에 잘 활용하면 위와같은 고생은 안할 수 있다.
[중단점] 창 활성화
위와 같이 중단점 창을 활성화 시키면, 아래에 중단점이라는 탭이 추가되게 된다.
[중단점] 탭을 누르면 중단점을 찍은곳의 위치가 표시된다.
해당 중단점에 마우스 우클릭 -> [조건]을 눌러 조건 창을 활성화 시킨다.
[중단점 조건]
해당 조건창에서 위와 같은 조건을 기입하여 중단점 조건을 지정해주고, 참인 경우로 라디오버튼을 체크해두고 확인을 눌러서 디버깅해보자.
정확하게 i 가 500일때 중단점에서 멈출것이고 디버깅을 손쉽게 할수 있다.
단 중단점을 잘못 지정하면 디버깅 성능저하 또는, 조건을 잘못 줄 경우 제대로 된 디버깅이 안될수 있으니 참고하자.