우리 프로젝트에서는 makefile
을 통해서 프로젝트를 빌드하고 실행하게 됩니다.
이 프로그램을 디버깅 하기 위해서는 자체적으로 컴파일 하고 실행하는 과정이 아닌 실행파일을 미리 만들어 놓고 gdb를 통해서 실행하는 과정이 필요합니다.
따라서 현재 존재하는 실행파일을 바로 디버거로 실행하는 방법을 작성합니다.
make build
-> driver
(test 폴더에서) make test-rbtree
-> test-rbtree
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
파일을 열어서 디버그 실행을 하는 순간 내가 정의한 실행옵션을 선택할 수 있습니다.
눌러주면 다음과 같이 디버그모드로 실행이 되면서 설정한 중단점
에서 프로그램이 멈추고 지역변수들을 확인할 수 있습니다.
따라서 하기 편하게 잘 쓰셨네요 감사합니다