目前这种方法应该只适用于单文件调试
环境:MacOS G++/GDB(实际上M芯片的Mac上不方便使用gdb,下面我们使用lldb代替,lldb可以兼容g++的调试信息)
VS Code最好提前装好C++的环境包(ms-vscode.cpptools) & damiankoper.gdb-debug(插件,不一定需要)
首先需要是在打开一个文件夹的状态下,需要调试的文件是当前激活的标签,进入左边栏的调试界面
可以自己创建launch.json,配置调试方式
自己手动配置可以参考这里:https://www.youtube.com/watch?v=G9gnSGKYIg4
自己配置好的文件内容如下,使用自己配置的方式比较好:(这两个文件没有的话,自己手动创建一下)
# .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "/usr/bin/g++",
"args": [
"-g",
"${file}",
"-o", "${fileDirname}/${fileBasenameNoExtension}",
"--std=c++17",
"-DZH_DEBUG"
],
"problemMatcher": ["$gcc"]
}
]
}
# .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) Zhonghui",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
// "args": ["<", "${fileDirname}/in.txt"],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"preLaunchTask": "build"
}
]
}
也可以点击[Show all automatic debug configurations],然后选择自动的配置文件(见图)
这种方式有概率出错(Configuration 'C/C++: g++ build and debug active file' is missing in 'launch.json'.),重启一下VS Code就可以了,有点迷(所以不推荐使用这种方式)


然后打好断点就可以开始调试了(要注意,开启调试的时候,需要调试的文件需要是正在激活的标签页)

中途会有权限访问请求,同意即可
如何输入?方案1
// freopen("in.txt","r",stdin); // 好复古的写法 // 在task.json里面指定了,编译的时候定义了一个宏(ZH_DEBUG) #ifdef ZH_DEBUG freopen("in.txt", "r", stdin); #endif
如何输入?方案2
调试的时候需要手动输入的话还需要手动配置(应该是弹出专门的输入窗口,或者配置“<”,“in.txt”这样的程序参数,不能通过配置参数实现重定向)
输出则可以在调试窗口直接看到