프로그래밍/ROS

ROS를 VS code에서 디버깅하기

스스배 2021. 4. 19. 14:38

ROS는 기본적으로 일반용 실행파일이랑 디버그용 실행 파일이 나눠져 있어서 

디버그용 실행 파일을 만드려면 다른 빌드 커맨드를 써야됨

 

~/catkin_ws를 vscode에서 실행

 

$ cd ~/catkin_wd
$ code .

 

그리고 ~/catkin_ws/.vscode/tasks.json 안에 아래 task를 넣음

 

    "tasks": [
        {
            "label": "make_debug",
            "type": "catkin_make",
            "args": [
                "--directory",
                "${workspaceFolder}",
                "-DCMAKE_BUILD_TYPE=Debug", // This extra argument enables built with debug symbols
            ],
            "problemMatcher": [
                "$catkin-gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
        },
    ]

 

 

그리고 컨트롤 + 쉬프트 + P를 누름

다음 [Tasks: Run Task]를 누르고 

make_debug 실행

 

그러면 디버그용 실행 파일들이 빌드됨

 

그리고 ~/catkin_ws/.vscode/launch.json의 configurations 안에 다음 코드를 넣음

 

    "configurations": [
        {
            "name": "ROS: Attach",
            "type": "ros",
            "request": "attach"
        },

 

그리고 아래 디버그 창 누르고 

디버그 창

 

디버그 실행하기전에  디버그할 노드를 먼저 (rosrun이나 roslaunch) 실행 해줌

그리고 멈출 부분 찾아서 중단점 지정해 놓고

디버그를 아까 launch.json에 넣어둔 ROS: Attach로 맞춰둠

 

그리고 현재 패키지 코드에 맞는 언어(c++, python)를 클릭하고

ros::init에 지정한 노드 이름을 검색하고 엔터하면 디버깅 시작됨

디버그 화면