我正在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
}
]
}
]
}
5条答案
按热度按时间rqmkfv5c1#
使用
-g
标记沿着g++/clang++编译程序。tcbh2hod2#
这个问题简直毁了我的一天,原来我所要做的只是
Terminal
〉Run Build Task
或Ctrl+Shift
+B
,然后开始调试。lrl1mhuk3#
我发现如果你的源代码文件名包含白色,比如“Binary Search.cpp”,VSCode将忽略断点,而不管“在入口处停止”的配置。从我的源文件名中删除空格是有效的,尽管它们的路径包含空格。例如“C++ Exercises/BinarySearch.cpp”似乎是有效的。
在GitHub上打开的this问题中,建议非ASCII字符可能导致此类问题。
mefy6pfw4#
默认的launch.json文件包含以下行:
第一个月
但是这将运行一个.out来启动调试,如果您只使用一个cpp文件配置tasks.json文件,它将具有如下行:
这将创建一个与你当前文件同名的可执行文件.
更改tasks.json以创建一个.out文件,或者使用当前文件的无扩展名更改launch.json文件。
launch.json:
或
tasks.json:
pxiryf3j5#
环境变量似乎有问题,请尝试从“Vscode的开发人员命令提示符”打开vscode,然后在提示符下键入:代码