본문 바로가기
카테고리 없음

[Visual Studio] Debug Tip 디버깅

by Luyin 2012. 5. 10.

디버깅 툴의 기능

오류의 종류

1. 신텍스 오류(Syntax error, 문법 오류)

오타와 같이 문법을 지키지 않았기에 발생하는 문법적 오류

2. 시멘틱스 오류

원하지 않는 결과를 초래하게 되는 논리적 오류


비주얼 스튜디오 2005 버전을 사용하면서 디버그에 필요한 정보를 획득했다...
예전에 분명 알려준거 같은데 사용하지 않으니 잊어버리고 있었던 것이다...ㅜㅜ


1) F9를 이용하여 Breakpoint를 생성한다.
2) Breakpoint가 생성된 곳에 오른쪽 마우스 버튼을 클릭하면 아래와 같이 화면이 팝업 된다.


3) Condition을 클릭하면 아래와 같은 화면이 팝업 된다.


우리가 흔히 사용하는 if 문과 동일한 효과로 사용될 수 있다.


서버 코드를 디버깅하는데 대입하는 영역에 해당하는 변수가 특정 값을 지녀야 하는 경우에만 브레이크를 걸어
확인이 필요했다...
Condition을 선배가 알려주었다... 이렇게 하면 브레이크를 걸 수 있다고...ㅜㅜ 알려줄 때 아!하고 예전에 배웠지!
라는 생각이 나버렸다...ㅜㅜ 

====================================================================================================
Watch 활용 하기


가장 기본적인 방법은 드레그를 이용하여 현재 진행 중인 곳에 value를 확인할 수 있다.

여기에 간단한 수식을 통해 넣어 확인 가능하다.

함수 호출을 이용하여 리턴 값 확인 가능.
   - 내가 만들어 놓은 함수이고 현재 브레이크 된 곳에서 호출이 가능한 경우 사용한다.
     sum (i, j)
   - i+j 형태의 수식도 입력하여 바로 확인 가능
   - sizeof(int) 함수 호출도 가능.

잘 사용하면 정말 유용한 watch인것 같다... 나의 경우 autos와 watch를 번갈아가며 상황에 맞게 사용중이다...
====================================================================================================

F10키를 이용하여 시작하면 main() 첫번째 라인부터 디버깅이 시작된다.
F10키는 한줄 한줄 넘길 때 사용되는 대표적인 키이다.
F11은 함수를 만났을 때 함수 안쪽으로 들어가고 싶다면 이 키를 누르면 된다.

다음 라인을 바꾸거나 코드 삽입을 하고 컴파일을 바로 진행하고 싶다면 Alt + F10키를 누르면 된다.


단축키 정리

 [F5]

 다음 정지 지점까지 계속 진행([F9] 키와 연동해서 사용한다.) 

 [F10] 

 프로시저 단위 실행 : (Step Over) 한 구문씩 진행하지만, 

 함수내부로 들어가지 않음.

 [F11]

 (Step Into) 한 구문씩 진행하지만, 함수 내부로 진행할 수 있음. 
 [Shift]+[F11]  (Step Out) [F11] 키와 반대로 현재 있는 함수에서 빠져 나옴. 

 [Ctrl]+[F10]

 (Run to Cursor) 현재 커서까지 진행을 시킴