利用vscode调试代码主要步骤包括两步:debug配置和设置断点调试。
在ros节点能编译运行的前提下,对出现的core dump等问题进行调试。
一、debug配置
debug配置包括vscode配置以及ros功能包的cmakelist文件配置。
vscode配置:
1.创建并配置launch.json文件
VSCode中是以workspace的概念处理文件关联的,每个workspace文件夹下会有一个.vscode文件夹,该文件夹下放置的是关于该workspace的路径配置、任务配置、运行配置等文件,我们正是通过编辑这些配置文件实现对工程的管理。
一般没有launch.json文件,需要自己手动生成。生成方法:
Ctrl + Shift + D弹出调试窗口,点击create a launch.json file, 一般选择gdb模式。
创建出来的launch文件中:
修改“name"为调试的节点名(随便自己定都行,只是方便在调试多个程序的时候有区分)
修改"program"为可执行文件的位置,在ros中一般是在devel/lib/包名/路径下
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "send_node",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/track_ws/devel/lib/mot_tracking/data_send_node",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
2.设置编译文件cmakelist文件为编译模式
在cmakelist文件中添加:
SET(CMAKE_BUILD_TYPE Debug)
或者是catkin_make在编译功能包时,添加catkin_make的参数
catkin_make -DCMAKE_BUILD_TYPE=Debug
如果工作空间下由多个功能包,可以在编译时添加-DCATKIN_WHITELIST_PACKAGES编译指定功能包
catkin_make -DCMAKE_BUILD_TYPE=Debug -DCATKIN_WHITELIST_PACKAGES="package1;package2"
3.最后重新编译,就可以设置断点进行调试了
Ctrl + Shift + D弹出调试窗口
点击绿色小三角进行调试,然后就可以正常的像一般调试一样单步运行查看中间变量了。
参考:https://blog.csdn.net/u013834525/article/details/106003959
https://blog.csdn.net/u012254599/article/details/106143540/?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.no_search_link&spm=1001.2101.3001.4242.1