我正在调试VS Code中的c ++代码,但它并没有在断点处停止并可视化变量,监视和调用堆栈,它本应该这样做。而不是这个,它在调试控制台中打印出来:
Breakpoint 1, 0x000000000040074a in main ()
[Inferior 1 (process 9445) exited normally]
The program '/home/hashir/x/a.out' has exited with code 0 (0x00000000)
这里是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": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "/home/hashir/x/a.out",
"args": [],
"stopAtEntry": false,
"cwd": "/home/hashir/x/",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
答案 0 :(得分:7)
使用-g
标签以及g ++ / clang ++
答案 1 :(得分:0)
我已经发现,如果您的源代码文件名包含空格,例如“ Binary Search.cpp”,则VSCode将忽略断点,而无论“停止输入”配置如何。尽管源文件路径中包含空格,但从源文件名称中删除空格是可行的。例如,“ C ++ Exercises / BinarySearch.cpp”似乎有效。
在GitHub上发布的this问题中,建议非ascii字符可能会导致此类问题。
答案 2 :(得分:0)
这个问题简直毁了我的一天。事实证明,我所要做的只是 Terminal
> Run Build Task
或 Ctrl+Shift
+ B
然后开始调试。