우선 디버거과 디버기의 차이점부터 설명하겠습니다.
디버기는 디버깅을 당하는 입장인 프로그램이구요
디버거는 디버깅을 하는 도구를 의미합니다
실행하고자하는 파일을 선택할때
---> Open Executable에서 exe 파일을 선택
심볼 파일 설정하는 방법
----> 메뉴에서 File을 선택 symbolFilePath 에서 SRV*저장경로*http://msdl.microsoft.com/download/wymbols 기입
여기서 심볼파일이 필요한 이유 : 심볼파일을 통해서 디버깅하는 소스 라인 디버깅이 가능하기 때문이다.
실행되어지고 있는 파일을 디버깅할때
---> Attach to a process
실행 중지 하는 방법
---> ctrl+breake
실행 시키는 방법
----> g 입력 / f5
------------------------------------------------------------------------------------------------
원하는 실행코드에 Breake 거는 명령어
---> bp 실행파일명!함수
Breake가 걸려있나 확인하는 명령어
---> bl
Breake 비활성화 명령어
---> bd ID
Breake 활성화 명령어
---> be ID
Breake 포인트 해제
---> bc 0
Breake 포인트 모두 해제
---> bc *
Breake 포인트 범위로 해제
---> bc 3-5
*bc는 디버깅이 종료되면 브레이크 포인트가 유지되지 않지만 bu는 브레이크 포인트가 계속 유지
------------------------------------------------------------------------------------------------
Call Stack 확인 방법
--> 메뉴 버튼에서 View에서 Call Stack을 클릭 or 명령어 k 를 입력
--> 아래쪽에서 위쪽으로 순서
--> Addrs 을 클릭하면 왼쪽은 ebp 이고 오른쪽은 이전 함수로 리턴 주소
--> Raw args 을 클릭하면 함수에 전달되는 파라미터 주소 값 / 명령어 kb 를 입력
------------------------------------------------------------------------------------------------
소스 경로 지정
--> 메뉴 버튼 File 에서 source File path 에서 경로 지정 or .srcpath+ 경로
------------------------------------------------------------------------------------------------
한줄씩 실행 시키기 및 호출하는 함수로 들어가기
--> 비쥬얼 스튜디오 방식이랑 같음
------------------------------------------------------------------------------------------------
지역변수 보기
--> 메뉴 버튼 View에서 Local 클릭 or 명령어 dv
------------------------------------------------------------------------------------------------
전역변수 보기
--> 메뉴 버튼 View에서 Watch 클릭 or 명령어 db 파일명!전역변수명 (16진수로 1바이트씩) , dd 파일명!전역변수명 (16진수로 4바이트씩)
--> 전역변수명을 넣어줘야한다
------------------------------------------------------------------------------------------------
메모리 창 보기
--> 메뉴 버튼 View에서 ㅡ Memory 클릭
------------------------------------------------------------------------------------------------