티스토리 뷰

추가> 20240429
실행파일을 직접 디버깅하는 경우 실핼파일이 있는 폴더가 한글로 되어 있으면 안되는거 같음.

추가> 20211018
bp 명령어로 한글로 된 함수를 지정하면 찾지 못하므로
영문으로 된 함수를 bp 걸고 브레이크되면 소스코드에서 한글로 된 함수로 이동해서 브레이크포인트(손바닥 그림)를 지정하고 g(실행) 한다.
bp 지정하기 전에 .srcpath 와 .sympath 를 먼저 추가해야 한다.
=========

 

 

덤프파일을 만들어 WinDbg 로 디버깅 가능하지만, 실행파일을 선택하고 디버깅도 가능하다.

 

WinDbg를 관리자권한으로 실행하고 Open Executable 메뉴를 클릭하고 실행파일을 선택한다. (항상 관리자권한으로 실행해야 하는지, 디버깅해야하는 실행파일이 관리자권한을 가져야 해서 그런건지 확실치 않음, 여기서는 디버깅할 실행파일이 관리자권한이 있어야 함)

프로그램을 실행하면서 디버깅 시작하는데 처음에는 자동으로 브레이크 걸리므로 g 로 계속 실행한다.
프로그램 크래시나는 경우 에러 지점에서 자동으로 멈추지만, 
에러 없이 디버깅하는 경우 "bp 실행파일명!함수명" 브레이크 포인트를 등록해야 하고 확인 명령은 bl 이다.

마찬가지로 다시 브레이크 걸리는데 무시하고 g 를 입력해서 계속 실행한다.

그러면 프로그램이 계속 실행된다.

위 그림의 아이콘을 클릭하여 강제 브레이크를 걸어 프로그램 실행을 멈춘다.

File 메뉴의 Symbol File path와 Source File Path 메뉴에서 각각 심벌과 소스코드가 있는 폴더를 지정하고 Save Workspace 메뉴를 클릭하면 저장되어 해당 실행파일을 열면 심벌과 소스코드 폴더가 자동으로 연결된다.
저장하지 않으면 매번 같은 실행파일을 디버깅할때 심벌과 소스코드 폴더를 지정해야만 한다.

저장한 심벌과 소스코드 폴더가 올바르게 지정되어 있는지 .srcpath 와 .sympath 로 확인할 수 있다. 이때 명령어 앞에 . (점) 을 붙여야 한다.

bp 명령으로 CMainFrame::OnMenuOption 함수가 호출될때 브레이크를 등록한다. (이때는 . 불필요)bp Stock!CMainFrame::OnMenuOption 입력하는데, Stock! 은 실행파일 이름인데 입력하지 않으면 자동으로 붙는거 같다.

g 명령으로 다시 실행한다.

 

실행중인 프로그램에서 브레이크 설정한 함수에서 브레이크 작동하도록 동작을 실행한다.
여기서는 환경설정 메뉴를 클릭하면 CMainFrame::OnMenuOption() 에서 브레이크 정상 작동하고 빨간색으로 표시된다.

 

k명령으로 콜스택과 툴박스에서 지역변수와 추적할 변수 값 확인이 가능하다.
왼쪽 00 을 클릭하면 지역변수, 우측 소스코드 이름을 클릭하면 해당 소스코드를 보여준다.
만약, 소스코드 이름이 안나오면 심벌과 소스코드 폴더 위치를 확인하고 .sympath+ 와 .srcpath+ 명령어로 해당 폴더를 추가해야 한다.

여기서부터는 VisualStudio 처럼 한줄씩 디버깅하면된다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30