vscode使用lldb调试C++程序


如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033

环境:

OS:Ubuntu 20.04
cmake: 3.16.3
编译器:g++ 9.3.0
调试器:lldb 10.0.0
vscode:1.63.2
OS:windows 10
cmake: 3.22.1
编译器:vs2017
调试器:lldb 12.0.0
vscode:1.63.2

创建时间:2022-01-24

前言

一般情况下,在linux下使用gdb调试,windows下使用Visual Studio调试。lldb可以同时支持windows、linux和MacOS的C++调试,本文介绍使用vscode + lldb调试C++的cmake工程。

1. 下载和安装vscode

2. 编写测试程序

目录结构

$ tree
.
+--- .vscode
|   +--- launch.json
+--- CMakeLists.txt
+--- myprint.cpp
+--- myprint.h
+--- test.cpp

test.cpp

#include "myprint.h"
int main()
{
    int num = 1;
    myprintf(num);
    return 0;
}

myprint.h

void myprintf(int num);

myprint.cpp

#include <iostream>
void myprintf(int num)
{
    std::cout << "num: " << num << std::endl;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.11)

project(test)

include_directories(.)

add_executable(${PROJECT_NAME} test.cpp myprint.cpp)

3. 编译源码

注意:必须生成Debug模式,否则无法调试

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake --build . --config Debug

建议使用CMake Tools进行编译。

linux下验证应用程序是否为debug版本:

readelf -S test | grep debug

windows下查看是否有test.pdb判断是否为debug版本

4. vscode配置C++调试环境

  • 安装lldb C++调试插件【必选】

安装 VS Code lldb调试插件CodeLLDB

  • 安装cmake插件【可选,便于编译】

安装 VS Code调试插件CMake Tools

  • 创建调试启动文件
【Run(Ctrl + Shift + D)】-> 【create a launch.json file】-> 【LLDB】

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "windows",
            "program": "${workspaceFolder}/build/Debug/test.exe",
            "args": [],
            "cwd": "${workspaceFolder}"
        },
        {
            "type": "lldb",
            "request": "launch",
            "name": "linux",
            "program": "${workspaceFolder}/build/test",
            "args": [],
            "cwd": "${workspaceFolder}"
        }
    ]
}
  1. 调试

设置断点,在vscode中按F5进行调试。

vscode左侧有变量、监视、调用堆栈、断点和Modules信息。


License

License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎

如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033


Reference:
NULL

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐