VScode ROS 配置gdb调试错误记录

问题1:VSCode调试出现无法打开glibc库的“raise.c“或“abort.c“等文件的错误

vscode报错:

Unable to open 'nanosleep.c': Unable to read file '/build/glibc-uZu3wS/glibc-2.27/sysdeps/unix/sysv/linux/nanosleep.c' (Error: Unable to resolve non-existing file '/build/glibc-uZu3wS/glibc-2.27/sysdeps/unix/sysv/linux/nanosleep.c').

在这里插入图片描述
解决:

sudo apt install glibc-source
cd /usr/src/glibc
sudo tar xvf glibc-2.31.tar.xz

在launch.json中的"configurations"下添加

"sourceFileMap": {
    "/build/glibc-YYA7BZ": "/usr/src/glibc"
}

其中"YYA7BZ"要改为报错信息中显示的glibc后缀

问题2:terminate called after throwing an instance of ‘std::runtime_error’

vscode报错

terminate called after throwing an instance of 'std::runtime_error'
  what():  Duration is out of dual 32-bit range

同时显示调用栈出错

在这里插入图片描述
原因:
调用栈中变量取值越界,原因是本次调试是使用的单节点gdb调试,没有加载ROS Launch中的yaml文件,因此很多变量没有初始化,使用过程中会越界,因此出现堆栈调用错误。
解决:
换用launch gdb调试,将yaml文件加载进程序。

修改后的launch.json

{
    // 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": "ROS: Launch",
            "type": "ros",
            "request": "launch",
            "target": "/home/twilight/project/robot/Foothold_ws/src/foothold_planner/foothold_planner/launch/foothold_planner.launch"
        },
        {
            "name": "ROS: Attach",
            "type": "ros",
            "request": "attach"
        },
        {
            "name": "(gdb) Attach",
            "type": "cppdbg",
            "request": "attach",
            "program": "enter program name, for example ${workspaceFolder}/a.out",
            "processId": "${command:pickProcess}",
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
        
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/devel/lib/foothold_planner/foothold_planner_node",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true                
                }
            ],
            "sourceFileMap": {
                "/build/glibc-uZu3wS": "/usr/src/glibc"
            }
        }
     ]
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VSCode是一款功能强大的代码编辑器,它支持多种编程语言和框架,包括ROS。下面是VSCode配置ROS的步骤: 1. 安装VSCodeROS的相应版本。VSCode的官网上可以下载适用于不同操作系统的安装包,而ROS官网上也提供了相应的安装指南。 2. 安装ROS扩展插件。在VSCode的左侧导航栏中找到“扩展”,搜索“ROS”,安装ROS扩展插件。 3. 配置VSCode的设置。在VSCode左上方找到“文件”-“首选项”-“设置”,在搜索框中搜索“ROS”,根据需要进行相应的设置。 4. 配置ROS环境变量。在终端中输入以下命令: export ROS_PACKAGE_PATH=~/catkin_ws/src:$ROS_PACKAGE_PATH source ~/catkin_ws/devel/setup.bash 以上命令中,catkin_ws是ROS的工作空间,需要替换为实际的工作空间路径。 5. 创建ROS工作区文件夹。在终端中输入以下命令: mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace 6. 在VSCode打开ROS工作区。在VSCode中点击“文件”-“打开文件夹”,选择工作区文件夹。 7. 创建ROS包。在VSCode终端中输入以下命令: cd ~/catkin_ws/src catkin_create_pkg beginner_tutorials std_msgs rospy roscpp 以上命令中,beginner_tutorials是包名,std_msgs、rospy、roscpp是依赖项,可以根据需要进行修改。 8. 编写ROS节点。在VSCode打开相应的ROS包文件夹,编写ROS节点的代码。 9. 运行ROS节点。在VSCode左侧导航栏中找到“运行”,点击“启动ROS节点”,选择相应的ROS包和节点,点击“启动”。 以上就是在VSCode配置ROS的步骤。配置完毕后,可以更加便捷地进行ROS开发和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值