VSCode远程调试linux环境的C/C++(三)

VSCode远程调试linux环境的C/C++(二)-优快云博客

接着前一篇继续学习

前面试着远程调试了个简单的C++程序,但实际项目模块很多,还用了很多第三方库,本来说是学习下CMAKE的,后来想着tasks.json中既然可以定义先cmake再make,那我本来已经make过的项目可以只选择make就可以了,再配置个launch.json是不是也可以加断点调试了,试了下果然可以,这比linux下调试方便多了。

先打开整个项目的文件夹,按F5,选择添加launch.json,把以前的sh启动脚本放到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": "g++ - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/bin/3rdlibs/appTest",
            "args": [
                "--load=../../config/app/init.cfg"
            ],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}/bin/debug/app",
            "environment": [
                {"name": "PATH", "value": "./:../../3rdlibs:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/uu sr/local/games:/usr/local/ssl/bin:/usr/ntp/bin"},
                {"name": "LD_LIBRARY_PATH", "value": "./:../../3rdlibs:$LD_LIBRARY_PATH"}
            ],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

主要修改了

  • "program":启动程序的路径
  • "args":加在"program"后面的参数
  • "cwd":执行路径
  • "environment":一些路径,sh里面原本是下面这样
PATH=./:../../3rdlibs:$PATH
LD_LIBRARY_PATH=./:../../3rdlibs:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH PATH

但我直接改成下面这样,c++代码里调用的ping,du之类的指令都not found

"environment": [

                {"name": "PATH", "value": "./:../../3rdlibs:$PATH"},

                {"name": "LD_LIBRARY_PATH", "value": "./:../../3rdlibs:$LD_LIBRARY_PATH"}

            ],

只好linux里面echo $PATH,然后全拷贝到"environment"里面了,有什么更好的办法可以指教下

再添加tasks.json,只有make的流程

{   
    "version": "2.0.0",
    "options": {
        "cwd": "${workspaceFolder}"
    },
    "tasks": [
        {
            "label": "make",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "command": "make",
            "args": [
 
            ]
        },
        {
            "label": "Build",
			"dependsOrder": "sequence", // 按列出的顺序执行任务依赖项
            "dependsOn":[
                "make"
            ]
        }
    ]
 
}

再跟前一篇一样F9加断点,F5开始跑就可以单步调试了。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值