Debug 하는법 Tip

나의 VS 디버그 하는 법

 

*들어가기전에..

 이 글을 쓰면서 많이 생각해 봤습니다.

사실 제가 알고 있는 Debug는 방법은 누구에게 배운것도 또 인터넷에서 찾아서 본 것도 아닌그냥 물 흐르듯 자연스럽게 터득한 내용이기 때문에 실무에서 일하시는 분들이나

많이 아시는 분이 보신다면 잘못된 Debug방법이거나 웃긴 방법일수도 있다고 밝혀드립니다.

 
 

  


 

n  단축키

*F5: 디버그 모드 빌드 단축키

 (보통 많이 할거라고 생각되는  Ctrl+F5 Debug를 하지 않고 실행 빌드이다.)

*F9: 중단점 설정

Hit :

<위처럼 중단점과 현재문의 전체 소스 줄 강조 표시에 체크 해주시면 아래처럼 강조표시되어 보기 더 좋아집니다.>

 




*
디버그모드실행중 F5 : 중단점 위치에서 다음 중단점까지 실행해준다.

*F10 : 해당 줄의 다음 줄을 실행해 준다.

*F11해당줄이 함수같이 다른 곳을 가는 프로그래밍경우 그 안으로 이동해 실행한다.

(F10  F11의 차이점은 F10는 함수를 만나도 해당 위치에서 다음 줄을 시행하지만 F11는 그 함수 안으로 들어가서 실행시켜준다.

*Shift + F11 함수의 밖으로 나가 실행해준다.

(F11 로 함수 안으로 들어와 실행 시 Shift+F11로 들어온 함수를 탈출(끝낸 후)한다.)

*Ctrl+F10현재의 위치부터 커서의 위치까지 실행시켜준다. (본인이 가장 많이 쓰는 단축키..)

=> 참고로 Ctrl+F10는 뒤로는 가지는 않습니다.. ㅡㅡㅋ;;

(당연히 프로그래밍이 역 주행할 일은 없겠죠,..)

 

위의 단축키를 제가 주로 쓰는 단축키입니다.

글로 적으려고 보니 잘 이해되지 않을 것 같지만.. 이건 직접 해보시며 아실 것 입니다.

 




 

n  디버그모드에서 자주 보게 되는 표시 아이콘

 위의 붉은색 원은 중단점을 표시 그리고 아래 노란 화살표는 현재 실행하는 줄 입니다.

(ps. 저처럼 줄에서도 색이 입혀진 이유는 위에서 설명한 옵션에서 체크했기 때문입니다.)

 이거 말고 더 있다고 알고 있지만.. 나머진 저도 잘 모릅니다

 
 

 


(1) : 
디버그 실행입니다. 현재 중단된 상태에서 이 버튼을 누르면 다시 뒤이어 실행됩니다.

단 중단된 해당 줄이 여러 번 실행되는 경우 예로 들면

 M_pp->m_String = m_p2->m_String 같이 포인트로 이동하고 문자 가지고 오고 그걸 복사하는 식으로 몇 가지 단계 일 경우 그 단계만큼 계속 눌려주셔야 합니다..

 저 같은 경우 그냥 F9로 중단점 없앤 후 그냥 저 버튼 한번만 눌려 버립니다..

(가끔 이걸 모르시고 디버그 모드 끝내시고 중단점 제거하신 후 컴파일 해서 확인하신 분 계시는걸 봤습니다.. 이젠 저 버튼 이용하세요 ^^);

 

(2); 디버그 멈춤입니다현재 중단점을 만나지 않고 계속 프로그래밍이 실행중일 때 저버튼을 누르면 중단되면서 현재 중단된 위치를 보여줍니다.

 

(3): 디버그 중단입니다. 현재 디버그 중을 완전 종료 시킵니다.

 

(4) 재컴파일후 디버그 모드로 실행입니다.  가끔씩 디버그 모드중에 오류를 발견하고 수경하는 경우 있습니다그때 저 버튼 눌려주시면 다시 컴파일 해서 디버그 모드로 돌아와줍니다.

 

(5) 다음문 실행사용자가 지정한 명령중 다음 명령을 실행하는 것 같은데.. 자세한건 모르겠습니다사실 사용자가 지정하는 명령을 어떻게 하는지 조차 모릅니다죄송합니다.

 

(6) 한단계씩 코드실행F11단축키 같은 기능입니다함수가 있다면 함수 안으로 들어가서 그 함수 코드를 실행시킵니다.

 

(7)프로시져 단위로 실행 F10단축키와 같은 기능입니다현재위치에서 바로 아래단계 실행.

(8) 프로시져 나가기 : Shift+F11와 같은 기능 즉 들어온 함수 나가는 키

 

(9) 16진수 : 값을 표시 해줄 때 16진수로 표시해줍니다..(전 한번도 안 썼습니다.)

 



 

n  많이 보는 창들

 

제가 많이 보는 창은 위에 두 개뿐입니다.


 

 

첫번째 창은 현재 실행위치 근처에 있는 변수들의 값을 보여줍니다.

 특히 아래 그림처럼

 

this 목록을 많이 보는데 다들 아시겠지만 현재 위치 즉 위에서 보자면 Class CTrack의 맵버변수맵버 확인할 때 많이 봅니다.

위처럼 +표씨를 눌려 내려보시면 해당 변수가 가지고 있는 맴버들의 값들도 보여줍니다.

 



 

두번째 창은 호출 스택입니다.

말그대로 호출된 함수들을 목록을 보여줍니다.

 

 

위 그림처럼 해당위치를 클릭하면 그 위치로 이동됩니다이동되었다 해서 프로그램 실행위치가 이동한 게 아니라현재 보여주는 위치만 이동한 것이라는걸 유의해주세요

(프로그래밍 시작중인 위치 표시아이콘은 노란색 화살표입니다.)

이 창의 주요 보는 이유는 바로 실행과정을 확인하는 것입니다.

맨위줄에 있는 것이 즉 CTrack::INITAni 함수가 최근에 실행한 함수이고 그 아래로 내려갈 수로

그 전에 실행된 함수들입니다말 그대로 스택처럼 말이죠..

 

  

n  사용해보니 편한창. (조사식창 영어론 아마도 Watch 일것입니다.)....

 

 

이창의 위의 자동 창하고 많이 비슷하지만 좋은 점이 있습니다.

바로 사용자가 원하는 값을 직접 등록 해서 볼 수 있습니다.

사용방법은 간단합니다.

 

 

현재 중단되어 멈춰있는 상태일 때 값을 보고 싶은 변수를 드레그 해서 조사식 안에 넣어주기만 하면 위처럼 등록됩니다.

 (ex: 현재 m_AniName부분이 실행되지 않았기 때문에 값은 “” 즉 들어있지 않다고 나오군요)

 

이걸 이용하는 이유는 바로 멀리 떨어져 있는 변수의 값들을 확인할 때 유용하기때문입니다.

위에서 본 자동은 주변에 있는 변수의 값들만 보여주었다면 저건 사용자가 지정하기 때문에

더 광범위하게 값을 보고 판단 할 수 있습니다영어 말 그대로 Watch 창 인거죠 ㅎㅎ;

출저:
http://blog.naver.com/jinlee25/40063420634





진짜 깔끔하게 정리되어있는 글을 퍼왔다.
대부분 나도 쓰지만 ctr+f10 같은거라던지 중단없애고 실행... 좀 쇼크다.
그리고 이 글을 찾게된 조사식...watch 창 오늘 처음알게됬는데 맨날 auto만 보던게 욀케 후회가 되던지...
드래그는 진짜 존나 신세계다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

역시 나는 아직도 부족하구나..... 

 

이 글을 공유하기

댓글

Designed by JB FACTORY