当前位置: 首页 > news >正文

macbook m1芯片 实现vscode下debug(解决无法读入的问题)

需要下载的

  • 点击下载vscode,注意选择Mac的Universal版本
    (兼容intel和apple silicon)
    请添加图片描述
  • 安装两个插件 C/C++ Extension Pack, CodeLLDB

    在这里插入图片描述

需要开启的

  • vscode 输入command + , 打开设置,输入terminal external,将图中框出的两个选项修改为external,如果将第二个框的Launch: Terminal修改为integrated,那么将使用vscode自带的终端,更方便一些
    在这里插入图片描述

需要新建的

  • 新建一个源文件hello.cpp
#include <iostream>
using namespace std;

int main()
{
    int a = -1;
    cin >> a;
    cout << a + 100 << endl;

    return 0;
}
  • command+shift+p输入C/C++ 编辑配置(UI),会自动生成.vscode/c_cpp_properties.json
    内容为:
{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "macos-clang-arm64"
        }
    ],
    "version": 4
}
  • command + shift + p 输入 Tasks: Configure Task,选中后再选择C/C++: clang++生成活动文件,生成.vscode/task.json,这里需要修改内容,建议直接复制如下:
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "cpp",
			"command": "/usr/bin/clang++",
			"args": [
				"-fcolor-diagnostics",
				"-fansi-escape-codes",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "编译器: /usr/bin/clang++"
		}
	]
}
  • 点击vscode最左侧的爬虫(运行和调试),点击创建 launch.json 文件,选择LLDB,生成了一个.vscode/launch.json
    需要修改和添加内容,建议直接复制如下:
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "cwd": "${workspaceFolder}",
            "preLaunchTask": "cpp"
        }
    ]
}

剩余工作

  • hello.cpp 中的6、7、8三行打上断点,然后将编辑框留在hello.cpp
  • 点击vscode最左侧的爬虫(运行和调试),点击最上面的绿色启动按钮,启动程序
  • 点击最左侧的继续(F5),到达第6行时会发现左侧的Local变量原本存在的a消失了
  • 这时候会发现系统启动了一个终端,在终端中输入a的值并回车确认,此时程序将继续执行,左侧的Local变量中的a将显示你所输入的值
  • 至此完毕。

相关文章:

  • 前端:下载文件(多种方法)
  • 猿创征文|【JavaSE】 Collection集合全家桶
  • 【Coppeliasim+Add-on】附加组件-喷涂路径自动生成及喷涂仿真
  • 简易下载并使用Jupyter(Anaconda)
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记:以太坊(四):The DAO、反思、美链、总结
  • 算法与数据结构(2)--- 绪论(下)
  • 基于AAEncode编码的解密经历
  • 设定目标(1)- 为什么你每天感觉很忙却没什么拿得出手的成果?
  • 《大数据之路:阿里巴巴大数据实践》-第2篇 数据模型篇 -第9章 阿里巴巴数据整合及管理体系
  • 懂这些套路,开发到大客户不是什么难题
  • 市政管理学试题及答案
  • 第6章 - 多无人车系统的协同控制 --> 无人车运动原理
  • jmeter-11-Ant接口自动化及持续集成整合
  • 目标检测---以制作yolov5的数据集为例,利用labelimg制作自己的深度学习目标检测数据集(正确方法)
  • zookeeper的leader选举原理和底层源码实现超级详解
  • ES6指北【2】—— 箭头函数
  • angular2 简述
  • AWS实战 - 利用IAM对S3做访问控制
  • codis proxy处理流程
  • github从入门到放弃(1)
  • JavaScript DOM 10 - 滚动
  • JavaScript设计模式之工厂模式
  • js如何打印object对象
  • NSTimer学习笔记
  • Python语法速览与机器学习开发环境搭建
  • Redis在Web项目中的应用与实践
  • use Google search engine
  • XForms - 更强大的Form
  • zookeeper系列(七)实战分布式命名服务
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 精彩代码 vue.js
  • 你不可错过的前端面试题(一)
  • 前端js -- this指向总结。
  • 前嗅ForeSpider采集配置界面介绍
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 思否第一天
  • Hibernate主键生成策略及选择
  • Java总结 - String - 这篇请使劲喷我
  • 湖北分布式智能数据采集方法有哪些?
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (Java)【深基9.例1】选举学生会
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (九十四)函数和二维数组
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)mysql使用Navicat 导出和导入数据库
  • .NET Remoting学习笔记(三)信道
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .net(C#)中String.Format如何使用
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • @Autowired自动装配
  • [2023年]-hadoop面试真题(一)
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [Angular] 笔记 20:NgContent
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用