VC++ 6.0 디버거 사용하기

2007/05/16 23:18

VC++ 6.0 디버거 사용하기

[ more.. | less.. ]
F9 브레이크 포인트를 설정합니다. 기능상으론 __asm int 3 과 같습니다. 가끔 이 F9 가 삽질을 할때는 코드 중간에 __asm int 3 을 넣어주셔도 됩니다.
Restart(Ctrl+Shift+F5) 프로그램을 WinMain 에서부터 Trace 가능상태로 재실행.
Stop Debugging(Shift+F5) 디버깅 중단.
Break Execution 프로그램 실행중에 이 버튼을 누르면 현재 위치에서 Break 됩니다. 프로그램이 무한루프에 빠져서 응답이 없을때, 이 버튼을 누르면 문제되는 부분을 바로 찾을 수 있겠습니다.
Apply Code Change(Alt+F10) 디버깅 도중에 코드를 수정했을경우 재컴파일 후 현재 실행위치부터 바뀐 코드가 적용됩니다. 코드 수정후 Trace 하게되도 지가 알아서 수정된 코드를 적용하는데.. 왜 디버그윈도우로 끄집어냈는지 모르겠습니다. -_-
Show Next Statement(Alt+*) 소프트아이스의 u eip 와 같은기능 입니다. eip 레지스터가 가리키는 코드(다음에 실행될 코드)로 이동합니다.
Step Into(F11) 한스텝 Trace 하게됩니다. 만약 그부분이 함수 호출을 하는곳이면 함수의 속까지 따라 들어갑니다.
Step Over(F10) 위와같이 한스텝 Trace 하지만 함수가 있으면 바로 리턴합니다.
Step Out(Shift+F11) 현재 실행중인 함수를 리턴합니다.
Run to Cursor(Ctrl+F10) 현재 커서위치까지 GO 합니다. -_-a
Quick Watch(Shift+F9) 현재 사용중인 디버깅 심볼을 입력하여 그 심볼의 값을 볼수 있습니다. 변수, 문자열, 함수, 레지스터의 값을 볼 수 있습니다.
Watch 디버깅시 우측 하단에 떠있는 창으로, Quick Watch 와 전체적으로 비슷합니다.
Variables 디버깅시 좌측 하단에 떠있는 창으로, 현재 실행위치에서 사용되는 심볼과 한스텝 이전에 사용된 심볼의 값이 나옵니다.
Registers 레지스터의 상태를 보여줍니다.
Memory 메모리를 Dump 해서 헥사와 아스키로 디스플레이 합니다. Dump 할 주소값을 직접 입력할수도 있고 디버깅 심볼(변수, 문자열, 함수) 을 입력할수도 있습니다.
Call Stack 스택을 참조하여 함수의 호출경로를 볼 수 있습니다. 프로그램이 죽을때 실행경로 추적을 위해서 사용할수 있습니다.
Disassembly 코드를 Disassemble 하여 어셈블리 코드를 보여줍니다.

Tags

디버깅