vscode调试cmake生成的可执行文件

注:vscode运行可执行文件时,当前路径是当前打开的tab对应文件的路径。

1、使用cmake编译生成可执行文件,可执行文件需要改成Debug模式。

2、在vscode中创建launch.json:

(1)vscode自动生成

"version": "0.2.0",
2"configurations": [
3    {
4        "name": "(gdb) 启动",
5        "type": "cppdbg",
6        "request": "launch",
7        "program": "输入程序名称,例如 ${workspaceFolder}/a.out",
8        "args": [],
9        "stopAtEntry": false,
10        "cwd": "${fileDirname}",
11        "environment": [],
12        "externalConsole": false,
13        "MIMode": "gdb",
14        "setupCommands": [
15            {
16                "description": "为 gdb 启用整齐打印",
17                "text": "-enable-pretty-printing",
18                "ignoreFailures": true
19            },
20            {
21                "description": "将反汇编风格设置为 Intel",
22                "text": "-gdb-set disassembly-flavor intel",
23                "ignoreFailures": true
24            }
25        ]
26    }
27    
28
29]

 解释:

这段配置是 Visual Studio Code (VSCode) 中用于 C/C++ 调试的 launch.json 文件的一部分。它定义了一个调试配置。

1. `"version": "0.2.0"`:这表示该配置文件的版本号,确保与当前使用的 VSCode 和扩展相兼容。

2. `"configurations": [...`:这是一个数组,可以包含多个调试配置。在这个例子中,只有一个配置。

3. `{...}`:这是具体的调试配置对象。

4. `"name": "(gdb) 启动"`:配置的名称,在启动调试会话时用于选择特定的配置。

5. `"type": "cppdbg"`:指定调试器类型,这里使用的是针对 C/C++ 的调试器。

6. `"request": "launch"`:说明这是一个启动请求,即调试器将直接启动程序进行调试,而不是附加到一个已经运行的进程上。

7. `"program": "输入程序名称,例如 ${workspaceFolder}/a.out"`:指明要调试的程序路径。`${workspaceFolder}` 是一个变量,表示当前工作区的根目录。

8. `"args": []`:程序启动时传递给它的命令行参数列表。

9. `"stopAtEntry": false`:如果设为 `true`,程序启动时会在主函数的第一条指令处自动暂停。这里设置为 `false` 表示不立即暂停。

10. `"cwd": "${fileDirname}"`:指定程序的当前工作目录,`${fileDirname}` 是一个变量,表示当前打开文件所在的目录。

11. `"environment": []`:环境变量列表,可以在这里添加或修改环境变量。

12. `"externalConsole": false`:是否在外部控制台中运行程序,`false` 表示在内部集成终端中运行。

13. `"MIMode": "gdb"`:指定使用的调试协议,这里是 gdb。

14. `"setupCommands": [...`:一系列在调试会话开始前执行的 gdb 命令,用于初始化调试环境。例如,启用漂亮打印和设置反汇编风格为 Intel 风格。

(2)加以改动:

{

    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/run_euroc",  //改为可执行文件路径
            "args": ["drtTightly", "MH"],  //命令行参数
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
        

    ]
}

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用CMakeVSCode中进行调试的步骤: 1. 确保已经安装了CMake调试器(例如GDB)。 2. 在项目根目录下创建一个名为`CMakeLists.txt`的文件,并编写CMake配置。 3. 在VSCode中打开项目文件夹,并安装CMake Tools和C/C++插件。 4. 在VSCode的设置中,添加CMake的路径,并在CMake Tools的设置中配置CMake的路径和生成目录。 5. 在VSCode调试选项卡中,创建一个名为`(gdb) Launch`的配置,并设置`program`为可执行文件的路径。 6. 在源代码中设置断点,并使用调试器来跟踪程序的执行。 下面是一个示例`CMakeLists.txt`文件: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) set(CMAKE_CXX_STANDARD 11) add_executable(MyProject main.cpp) ``` 下面是一个示例的VSCode配置: ```json { "cmake.configureSettings": { "CMAKE_BUILD_TYPE": "Debug" }, "cmake.buildDirectory": "${workspaceFolder}/build", "cmake.configureOnOpen": true, "cmake.generator": "Unix Makefiles", "cmake.path": "/usr/bin/cmake", "cmake.sourceDirectory": "${workspaceFolder}", "cmake.toolsPath": "/usr/bin", "cmake.useCMakeServer": true, "cmake.configureArgs": [ "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON" ], "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", "C_Cpp.default.compilerPath": "/usr/bin/g++", "C_Cpp.default.includePath": [ "${workspaceFolder}/**" ], "C_Cpp.default.intelliSenseMode": "gcc-x64", "C_Cpp.default.browse.path": [ "${workspaceFolder}" ], "C_Cpp.default.browse.limitSymbolsToIncludedHeaders": true, "C_Cpp.default.browse.databaseFilename": "" } ``` 下面是一个示例的`launch.json`文件: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/MyProject", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb" } ] } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值