vscode断点加不上的解决方法

1. 现象介绍

当我们在使用 VS Code 编写代码时,很可能会遇到不能正常设置断点的情况。这种现象通常表现为:代码行前的圆点变成了空心圆,说明断点加不上。

2. 为什么会出现断点加不上的问题

导致 VS Code 不能设置断点的原因有很多,以下是可能出现的场景:

2.1. 没有启动调试模式

如果没有启动调试模式,通常是无法添加断点的。此时需要点击 VS Code 左侧的调试按钮,或按下 F5,让 VS Code 进入调试模式。

2.2. 代码没有编译

VS Code 不会自动编译我们的代码,如果我们的代码没有被编译成可执行文件,就无法添加调试断点。我们可以使用终端工具编译代码,或使用 VS Code 的内置功能进行编译。

2.3. 所选编译器不支持 debug

如果编译器没有支持debug,就无法在代码上设置断点。需要选择支持 debug 的编译器或者在编译选项中增加 -g 选项。

2.4. 目标可执行文件不存在

如果我们添加的断点位于一个不存在的可执行文件中,那么就会添加失败。此时需要先生成目标可执行文件,在该目标文件上设置断点。

3. 解决方法

3.1. 确认已经启动调试模式

在 VS Code 左侧,有一个调试按钮,点击后会弹出一个“启动调试”的选项,此时需要确认我们选择了正确的启动项,才能使断点正常工作。

{

"version": "0.2.0",

"configurations": [

{

"name": "Launch",

"type": "cppdbg",

"request": "launch",

"program": "${workspaceFolder}/test",

"args": [],

"stopAtEntry": false,

"cwd": "${workspaceFolder}",

"environment": [],

"externalConsole": true,

"MIMode": "gdb",

"miDebuggerPath": "/usr/bin/gdb"

}

]

}

上述是 C++ 调试的配置文件,程序路径需要根据自己的文件进行修改。

3.2. 确认代码已经编译

在 VS Code 左侧,有一个"终端 Terminal"按钮,在“终端”中执行编译命令可以生成可执行文件。

重要提示:如果使用 C++ 编写的程序,编译命令通常是:

g++ -g -o test test.cpp

其中,-g 表示生成可调试版本的代码。

3.3. 检查编译器设置

在 VS Code 的“启动”调试项中,有一个“miDebuggerPath”的配置项,此处需要填写 gdb 或 lldb 的路径。如果使用的是其他编译器,需要根据对应的调试器进行设置。需要修改 launch.json 文件中的配置。

"MIMode": "gdb",

"miDebuggerPath": "/usr/bin/gdb"

3.4. 检查程序可执行文件是否存在

使用终端进入程序所在文件夹,执行如下命令:

ls

如上命令可列出当前目录下的所有文件,如果程序可执行文件不存在,需要先进行编译。如果存在,则直接在 VS Code 中打开该文件,即可添加断点。

4. 总结

本文介绍了如何解决 VS Code 中断点加不上的问题。在使用 VS Code 进行编程时,需要充分了解调试模式、编译器设置和编译相关的知识。只要以上三者完成,再仔细检查添加断点的位置和代码逻辑,就能够成功设置断点。