lldb 调试php,linux系统下如何在vscode中调试C++代码
本篇博客以一个简单的hello world程序,介绍在vscode中调试C++代码的配置过程。
1. 安装编译器
vscode是一个轻量的代码编辑器,并不具备代码编译功能,代码编译需要交给编译器完成。linux下最常用的编译器是gcc,通过如下命令安装:
sudo apt-get install build-essential
安装成功之后,在终端中执行gcc --version或者g++ --version,可以看到编译器的版本信息,说明安装成功。
2. 安装必要的插件
在vscode中编写C++代码,C/C++插件是必不可少的。打开vscode,点击左边侧边栏最下面的正方形图标,在搜索框里输入c++,安装插件。
3. 编写代码
hello world程序,略。
4. 配置task
在task里添加编译命令,从而执行编译操作。步骤如下:
按住ctrl+shift+P,打开命令面板;
选择Configure Tasks...,选择Create tasks.json file from templates,之后会看到一系列task模板;
选择others,创建一个task,下面是一个task的示例:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build hello world", // task的名字
"type": "shell",
"command": "g++", //编译命令
"args": [ //编译参数列表
"main.cpp",
"-o",
"main.out"
]
}
]
}
上面的command是我们的编译命令,args是编译参数列表,合在一起,其实就是我们手动编译时的命令。
g++ main.cpp -o main.out
5. 配置launch.json
把debug的内容配置在launch.json,这样我们就可以使用断点调试了。
点击侧边栏的debug按钮,就是那只虫子图标;
在上面的debug栏目里,点击齿轮图标;
在下拉菜单中选择 C++ (GDB/LLDB),这时会在.vscode文件夹下创建一个launch.json文件,用来配置debug;下面是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": "debug hello world", //名称
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/main.out", //当前目录下编译后的可执行文件
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}", //表示当前目录
"environment": [],
"externalConsole": false, // 在vscode自带的终端中运行,不打开外部终端
"MIMode": "gdb", //用gdb来debug
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build hello world" //在执行debug hello world前,先执行build hello world这个task,看第4节
}
]
}
6. 结束
至此,配置完成,按F5可以编译和调试代码,vscode自带终端中会打印hello world字符串。在程序中添加断点,调试时也会在断点处中断。
lldb 调试php,linux系统下如何在vscode中调试C++代码相关推荐
- windows查看linux文件中文,Linux 系统下无法查看Windows 中创建的中文文件名
标 题: Linux 系统下无法查看Windows 中创建的中文文件名 我是Linux初学者,在网上搜索了很久,经过多次尝试仍然无法解决问题,只好在这里发贴请教了,还望各位高手指点一下. 问题描述: ...
- linux系统下安装pfam数据库中hmmer软件以及python3非root用户的安装
linux系统下安装pfam数据库中hmmer软件以及python3非root用户的安装 http://hmmer.org/从该链接下载源,其中有Userguide.pdf 下载,解压缩并切换目录 之 ...
- 在Linux系统下安装vmwareworkstation(解决中途中所有问题合集)
为了兼容,建议安装vmware workstation 15 (en) 百度网盘: 链接: https://pan.baidu.com/s/14_q0aS5b52EpXBqhTcZO0w 密码: 66 ...
- Linux系统下sys/stat.h中的stat/fstat/l_stat——C语言
stat/fstat/l_stat #include <sys/stat.h> 功能:用来获取文件属性,返回值:成功返回0,失败返回-1 int stat(const char *path ...
- linux中查找某一个字符串,Linux系统下,在文件中查找某个字符串
android获取手机信息大全 IMEI号,IESI号,手机型号: private void getInfo() { TelephonyManager mTm = (TelephonyManager) ...
- 如何在VScode 中 调试 ts 文件 Unit test
最近在使用VScode 调试 mocha 写的 UT, 遇到一个问题,executor.js文件中require了某个ts写的文件代码,跑ut的时候回报错说无法找到. 解决方式是在参数中加入 &quo ...
- vscode写python爬虫_如何在vscode中调试python scrapy爬虫
HDOJ 2393. Higher Math Higher Math Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/327 ...
- 如何在VSCode中运行js代码
安装Node.js 不会安装的请直接查看我的博客五分钟教你搞定在HbuilderX上搭建Node.js环境 注意:只需要在cmd里敲node -v出现版本信息,就可以下一步操作了 在VSCode中下载 ...
- linux如何禁用ntp服务,Linux系统下NTP服务的配置注意要点
在Linux系统下NTP的标准配置中,许多关于同步的方式不同,注意以下要点: 如果不想让其它任何服务器访问本机的NTP服务:此配置也将造成本地的NTP无法访问外部的NTP服务: If you want ...
最新文章
- java随机动态分组_Java将一组数随机分组
- 图像傅里叶变换-不错
- 从 Dropdown 的 React 实现中学习到的
- 《Linux设备驱动程序》学习2—高级字符设备驱动ioctl
- 基于nginx-rtmp实现电视回看业务
- c语言程序输入n个数字排序,输入n个数字然后进行排序,用C语言编写。注意是n个数啊,不是确定的个数。...
- 凡事想开,心情不坏~
- 支持向量机——Large Margin Classifier
- js动态创建元素和删除
- HarmonyOS 实战——服务卡片初探索
- 小米8 android9手势,当小米8SE遇到安卓9.0,体验提升一个等级!
- 零碎技术栈01_UML画图分析
- 超分辨网络SRCNN的Pytorch实现
- PFC离散元软件快捷操作方式
- ecshop微信登录php代码,Ecshop实现微信第三方授权扫码登录
- Python 之 类 (Tom猫)
- 使用vue做一个“淘宝“项目——2
- 什么是iso认证周期,iso审核是一年一次吗?
- Windows11更新后打不开Edge浏览器解决办法
- animation和transition的区别及使用
热门文章
- ngRx 官方示例分析 - 4.pages
- TCP/IP 原理--链路层
- 每天一个JavaScript实例-canvas绘图
- hasLayout属性
- VisualC++2010系列课程
- 基于Google Reader发展起来的个性化推荐系统之三大问题
- SqlServer自定义排序
- [Oracle][Corruption]究竟哪些检查影响到 V$DATABASE_BLOCK_CORRUPTION
- 前端每周清单第 30 期:WebVR 指南,Vue 代码分割范式,理想的 React 架构特性
- MySQL存储引擎MyISAM和 InnoDB