SW사관학교 정글7기 개발일지 (09/06)

c4fiber·2023년 9월 6일
1

SW사관학교 정글7기

목록 보기
22/49
post-thumbnail

rbtree 프로젝트 test파일 디버깅하기

우리 프로젝트에서는 makefile 을 통해서 프로젝트를 빌드하고 실행하게 됩니다.

이 프로그램을 디버깅 하기 위해서는 자체적으로 컴파일 하고 실행하는 과정이 아닌 실행파일을 미리 만들어 놓고 gdb를 통해서 실행하는 과정이 필요합니다.

따라서 현재 존재하는 실행파일을 바로 디버거로 실행하는 방법을 작성합니다.

1. makefile을 통해 실행파일을 만들기

make build -> driver

(test 폴더에서) make test-rbtree -> test-rbtree

2. launch.json 파일 작성하기

1번 과정을 통해 실행파일을 생성하게 되면 해당 프로그램을 찾아 실행하는 설정이 필요합니다.
이를 위해서 launch.json 파일을 작성해야 합니다.

vscode 변수 레퍼런스 에서 사용할 변수들을 확인할 수 있습니다.
우리는 ${fileDirname}${fileBasenameNoExtension} 을 사용합니다.

launch.json

{
    "configurations": [
        {
            "name": "디버깅 드가자~",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

auto configuration 이후 다음과 같이name부분과 program 부분을 수정해주면
driver.c 파일을 열어서 디버그 실행을 하는 순간 내가 정의한 실행옵션을 선택할 수 있습니다.

눌러주면 다음과 같이 디버그모드로 실행이 되면서 설정한 중단점 에서 프로그램이 멈추고 지역변수들을 확인할 수 있습니다.

profile
amazing idiot

2개의 댓글

comment-user-thumbnail
2023년 9월 13일

따라서 하기 편하게 잘 쓰셨네요 감사합니다

답글 달기
comment-user-thumbnail
2023년 9월 21일

이대로 디버깅 드가볼게요~

답글 달기