vscode使用lldb调试C++程序


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

文章目录

  • vscode使用lldb调试C++程序
    • 前言
    • 1. 下载和安装vscode
    • 2. 编写测试程序
    • 3. 编译源码
    • 4. vscode配置C++调试环境

环境:

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

vscode使用lldb调试C++程序相关推荐

  1. 如何使用vscode安装和调试Java程序

    步骤一:安装调试 Vscode官方出的安装指南 步骤二:运行Java程序 需要注意的是,Java程序不能单独运行(就是单独写一个文件然后运行),要在项目里才可以运行起来. 运行时注意事项和可能出现的问 ...

  2. vscode+node.js 调试js程序/edge浏览器调试javaScript/edge浏览器独立调试编辑并保存代码/浏览器内开发者工具element/console布局(focus Mode)

    文章目录 declaration vscode 对于javascript的支持 环境 使用node.js调试纯js代码 使用浏览器调试 试验代码 Note! edge浏览器独立调试编辑并保存代码 窗格 ...

  3. lldb硬件断点android,Andorid Studio NDK开发-LLDB调试

    LLDB是一个高效的c/c++的调试器,是与LLVM编译器一起使用,提供了丰富的流程控制和数据检测,有效的帮忙我们调试程序.LLDB也已经取代GDB成为XCode的默认调试器,Android Stud ...

  4. Linux系统vscode断点单步运行调试C++程序

    安装vscode 安装比较简单略略略略!!!! 配置安装插件 Ctrl+Shift+X检索并安装C++.C++Clang.Cmake.Cmake Tools 创建launch.json文件 用vsco ...

  5. Vscode编译调试C++程序

    一.简介 本文讲述在windows平台下在Vscode中使用g++编译本地C++程序,并使用gdb调试的方法.可能有些朋友会说:windows上不是已经有visual studio这个最强IDE了吗, ...

  6. vs怎么调试php程序,vscode如何调试运行c#程序

    前提条件: 安装.NET Core SDK 安装vscode 步骤: 安装c#extension插件 创建第一个项目,手动创建workspace文件夹 在vscode中使用快捷键CTRL+K+CTRL ...

  7. 在vscode中怎样debug调试go程序

    随着互联网时代的飞速发展,我们编码使用的开发利器也在不断更新换代,古话说工欲善其事必先利其器,对于Java开发者而言,eclipse和idea这两款神器各有千秋,因自己的爱好可以选取不同的IDE,但是 ...

  8. vscode编译、调试stm32F4系列mcu的程序

    捣腾很长时间了,用vscode编译.调试stm32F4系列mcu的程序.记录下. launch.json @TOC // AUTOMATICALLY GENERATED FILE. PLEASE DO ...

  9. msys2 结合 vscode 使用 lldb 进行调试及 lldb-mi.exe 问题

    默认 clang++.exe 环境生成的调试 launch.json 文件使用的 lldb-mi.exe 问题 clang 和 lldb 通过 pacman 安装. pacman -Sy mingw- ...

最新文章

  1. NGS的测序仪和相关技术时间轴 NGS相关数据库和项目时间轴
  2. jquery中siblings方法配合什么方法一起使用
  3. CISCO 防火墙建立穿越NAT的×××几种解决方法
  4. 【数论】挖掘机技术哪家强(jzoj 3858)
  5. Alibaba Sentinel 限流与熔断初探
  6. 简述 Linux 文件系统的目录结构
  7. LeetCode 106. 从中序与后序遍历序列构造二叉树(递归)
  8. TextAppearance.Material.Widget.Button.Inverse,Widget.Material.Button.Colored
  9. 穿越火线显示无法连接服务器,穿越火线无法连接服务器是什么原因
  10. excel如何让日期/时间增加指定分钟、小时、日
  11. 关闭WINDOWS文件保护功能
  12. net user administrator /passwordreq:yes 错误
  13. 淮安市第八届计算机比赛,淮安市科学技术协会
  14. 调试华为MML协议备忘
  15. javascript第六周总结
  16. Ansys-热应力分析(间接法)-液体管路分析学习收获
  17. awscli配置Access key ID和Secret access key
  18. 德佑地产房产经纪人区域总监访谈:精耕,业精于勤
  19. a标签跳转的四种方法
  20. js实现hover效果

热门文章

  1. 解读乔新亮的《看透本质:研发出了生产事故,到底要不要罚钱?》
  2. python制作gif动图_怎样用Python制作好玩的GIF动图
  3. node.js+uniapp计算机毕业设计安卓校园代办助手app(程序+APP+LW)
  4. 如何使用prerender-spa-plugin插件对页面进行预渲染
  5. 机器学习(深度学习)中的反向传播算法与梯度下降
  6. php登录关闭验证码,phpcms关闭后台登陆验证码的方法
  7. 你好:Zookeeper
  8. ZCMU-2014: 一生之敌(数学+枚举)
  9. redux中的三个原则与先前技术
  10. CUDA与openCL的比较