Debug 하는법 Tip
- 프로그래밍/프로그래밍일반
- 2011. 3. 17. 21:09
나의 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만 보던게 욀케 후회가 되던지...
드래그는 진짜 존나 신세계다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
역시 나는 아직도 부족하구나.....
[출처] 나의 VS 디버그 하는 법|작성자 찐남자
이 글을 공유하기