macOS Catalina 10.15.4 VS Code 调试单文件 C++ 实录

编程入门 行业动态 更新时间:2024-10-17 11:22:49

macOS Catalina 10.15.4 VS Code 调试单文件 C++ <a href=https://www.elefans.com/category/jswz/34/1766306.html style=实录"/>

macOS Catalina 10.15.4 VS Code 调试单文件 C++ 实录

首先声明,这里用的是 Microsoft 的“C/C++”扩展。

安装 VS Code 后,安装这个扩展,然后按以下步骤进行调试。

  1. 打开文件夹,以桌面为例。
  2. 新建 C++ 文件,以“demo.cpp”为例。输入样例代码。

  1. 点击调试,弹出以下窗口,选择第一个(C++ (GDB/LLDB))。

  2. 选择调试配置,如下图,会弹出一系列配置,选择第一个(clang++ build and debug active file)。如果有其他编译器需求,按自己需要的选。

  3. 接下来会弹出自动生成的 launch.json,直接关闭,回到 demo.cpp,再次按调试。

图:自动生成的 launch.json

图:再次按调试后弹出的错误窗口
  1. 点击配置任务,如下图,会弹出一系列配置。

细心的你可以发现,前面的 launch.json 里面的 preLaunchTask 写的是“clang++ build active file”,因此这里要选第二个(C/C++: clang++ build active file)。

  1. 接下来会弹出自动生成的 tasks.json。

图:自动生成的 tasks.json

显然那个 args 是传给编译器的参数,于是我们可以加上 -std=c++17 以支持 C++17。修改后的 json 文件如下(不建议复制,建议自己修改):

{
// 有关 tasks.json 格式的文档,请参见// /?LinkId=733558"version": "2.0.0","tasks": [{"type": "shell","label": "clang++ build active file","command": "/usr/bin/clang++","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}","-std=c++17"],"options": {"cwd": "/usr/bin"},"problemMatcher": ["$gcc"],"group": "build"}]
}
  1. 关闭 tasks.json,回到 demo.cpp,再次按调试,可以发现能够正常生成了。

图:直接按调试的结果

在这里,自动跳到了调试控制台。如果没有自动跳转到调试控制台,可以手动点击它,便可以看到输出的 Hello, world!

  1. 输入数据。

如果直接在调试控制台进行输入,会发现有问题。

图:输入数据后按回车,提示 Unable to perform this action because the process is running.

接下来,可能就要让你失望了。实践表明,应该不能使用键盘输入。一个你可能会想到的解决办法是,让它在外部弹出一个终端窗口不香吗?然而事实上,即便你修改了 launch.json,如下图:

图:修改后的 launch.json,选中内容是被修改的部分

即便你把外部控制台(externalConsole)给改成 true,再回到 demo.cpp 点调试,仍然没有办法进行输入。因为根本没有外部调试控制台弹出来!只会有一个终端弹出来,但并没有运行你的程序!(如果你能成功弹出,可能是系统稍有不同)所以要输入,只有两个办法。

  1. 使用文件输入输出;
  2. 在 VS Code 中新建终端,手动进行编译和运行。

接下来尝试设置断点,发现有无法断下的情况,参见这篇博客。

安装完扩展后(建议直接下载这个链接),打开 launch.json,将 type 改成 lldb,并删掉修改后不再支持的参数(会被红线标出),然后回到 demo.cpp,直接开始调试,即可正常下断。

更多推荐

macOS Catalina 10.15.4 VS Code 调试单文件 C++ 实录

本文发布于:2024-03-09 01:39:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1723264.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实录   Catalina   macOS   单文   Code

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!