该文档将会持续进行更新,涉及ROS调试中遇到的一些问题。
C++程序的调试也相仿,只是去掉了启动
roscore
的部分
通常步骤
1. 程序编译
这部分并不打算采用vscode的tasks.json来配置编译命令,而是选择手动的运行:
catkin_make --only_pkg-with-deps package_name
该命令可以单独的编译某个特定的package及其依赖项。
需要主要的是CMakeLists.txt应当修改成Debug模式:
OPTION(DEBUG_ON "Turn on DEBUG Mode" ON)
IF(DEBUG_ON)
MESSAGE("[Debug Mode]")
SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
ELSE()
MESSAGE("[Release Mode]")
SET(CMAKE_BUILD_TYPE "Release")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
ENDIF()
这样OPTION改成ON或者OFF,即可指定编译模式,比较方便。
2. 配置launch.json
这部分工作是本文的重点,单击vscode最右侧工具栏的Debug按钮(图标是一个甲虫+暂停),点击debug页里的齿轮按钮,即可打开launch.json。内容修改成如下状态:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.