728x90
저번 글에서 tasks.json, launch.json 을 만들어서 사용한다라고 했었습니다만, 오늘 VSCode 에서 사용해 보니
잘못 된 사용 법인 것 같네요.
우선 CMake Tools 를 선택 하면,
Configure 부터 테스트 환경설정을 만들 수 있는 창이 나오네요. 각각의 편집 버튼으로 검색창이 다음과 같이 활성화 되는 듯 합니다.
원하는 컴파일러를 선택하는 화면이 되겠습니다.
Configure 설정
다음과 같이 Configure Args 에 원하는 옵션을 설정 할 수 있네요...
그런 다음 configure 버튼을 눌러 실행 해 주면,
그런 다음 빌드 순서로 진행 해 봅니다.
제대로 빌드 된 것을 확인해 볼 수 있었습니다.
디버깅해보기
그런 다음 디버깅을 해도록 합니다. 디버깅 아이콘을 클릭하여 다음과 같이 선택해 줍니다.
그리고 뒤져보다 알아낸 사실이지만 설정들이 기본 디렉토리에 생성 된 것을 확인 할 수 있었습니다.
위는 디버그 시에 아규먼트를 넣어준 모습입니다.
Launch 버튼을 눌러 주어야 하네요...
그런데...디버깅을 시작하면 내가 만들어 놓은 파일을 따라가기 시작하네요...
결국 .vscode 폴더 내에 launch.json과 tasks.json 파일을 참고 하네요.
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug OSRM",
"type": "cppdbg",
"request": "launch",
"program": "C:\\DEV\\GIS\\OSRM\\osrm-backend\\build\\osrm-extract.exe", // 빌드된 실행 파일 경로
"args": [
// "run",
"-p",
"C:\\DEV\\GIS\\OSRM\\osrm-backend\\profiles\\car.lua",
//"C:\\DEV\\SDK\\GIS\\OSRM\\Backend_Exec\\data\\south-korea-latest.osm.pbf"
"C:\\DEV\\GIS\\OSRM\\Backend_Exec\\data\\seoul-non-military.osm.pbf"
],
"stopAtEntry": false,
"cwd": "C:\\DEV\\GIS\\OSRM\\osrm-backend", // 작업 디렉토리 경로
"environment": [],
"externalConsole": true, // 디버깅 시 콘솔을 별도로 열기
"MIMode": "gdb", // GDB 디버거 사용
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"miDebuggerPath": "C:\\DEV\\SDK\\msys64\\clang64\\bin\\gdb.exe", // MSYS2의 GDB 경로 설정
//"preLaunchTask": "Make Build", // 디버깅 전에 빌드 작업을 실행
//"miDebuggerArgs": "run -p C:\\DEV\\SDK\\msys64\\home\\User\\osrm-backend\\profiles\\car.lua C:\\DEV\\GIS\\OSRM\\Backend_Exec\\data\\south-korea-latest.osm.pbf ", // GDB 인수
//"miDebuggerArgs": "--cd=${workspaceRoot}",
"logging": {
"moduleLoad": false,
"programOutput": true,
"engineLogging": false
}
}
]
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "CMake Build",
"type": "shell",
"command": "cmake",
"args": [
"-G=MinGW Makefiles",
"-DCMAKE_CXX_FLAGS=-g -Wa,-mbig-obj -Wmisleading-indentation -DTOBEE",
"-DCMAKE_EXE_LINKER_FLAGS=-lws2_32 -lmswsock",
"-DDOXYGEN_EXECUTABLE=OFF",
"-DCMAKE_BUILD_TYPE=Debug",
"-DCMAKE_SYSTEM_NAME=Windows",
"-DBOOST_INCLUDEDIR=C:\\DEV\\SDK\\msys64\\clang64\\include\\boost",
"-DBOOST_LIBRARYDIR=C:\\DEV\\SDK\\msys64\\clang64\\lib",
"-DTBB_DIR=C:\\DEV\\SDK\\msys64\\clang64\\lib\\cmake\\TBB",
"-DTBB_INCLUDE_DIR=C:\\DEV\\SDK\\msys64\\clang64\\tbb",
"-DLUA_INCLUDE_DIR=C:\\DEV\\SDK\\msys64\\clang64\\",
"-DLUA_LIBRARIES=C:\\DEV\\SDK\\msys64\\clang64\\lib\\liblua.a",
"-DCMAKE_INSTALL_PREFIX=C:\\DEV\\GIS\\OSRM\\Backend_Exec\\Debug",
"C:\\DEV\\GIS\\OSRM\\osrm-backend\\"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": []
},
{
"label": "Make Build",
"type": "shell",
"command": "C:\\DEV\\SDK\\msys64\\clang64\\bin\\mingw32-make",
"args": ["install"],
"group": {
"kind": "build",
"isDefault": false
},
"problemMatcher": []
}
]
}
728x90
'프로그래밍' 카테고리의 다른 글
Spring Boot AOP (0) | 2024.02.27 |
---|---|
JGroups-Spring In Action (0) | 2024.02.26 |
JDBC_PING을 사용하여 클러스터 노드를 검색하는 방법 (0) | 2024.02.23 |
신뢰성 있는 메시지 교환을 위한 JGroups (0) | 2024.02.22 |
Spring MVC 내 HandlerInterceptors vs. Filters (0) | 2024.02.16 |