vscode c++ 编译生成后,调试时无法命中断点

 1 //test.cpp
 2 #include <stdio.h>
 3 int g_var = 0;
 4 void print_line(char *str)
 5 {
 6     if (str != NULL)
 7         printf("%s\r\n", str);
 8     else
 9         printf("null string\r\n");
10 }
11 int main (int argc, char **argv)
12 {
13     int l_var = 1;
14     print_line("hello world!");
15     printf("g_var = %d, l_var = %d.\r\n", g_var, l_var);
16     return 0;
17 }

launch.json

 1 {
 2         "version": "0.2.0",
 3         "configurations": [
 4             {
 5                 "name": "(gdb) Launch",
 6                 "type": "cppdbg",
 7                 "request": "launch",
 8                 "program": "${workspaceRoot}/test.exe",
 9                 "args": [],
10                 "stopAtEntry": false,
11                 "cwd": "${workspaceRoot}",
12                 "environment": [],
13                 "externalConsole": true,
14                 "MIMode": "gdb",
15                 "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
16                 "setupCommands": [
17                     {
18                         "description": "Enable pretty-printing for gdb",
19                         "text": "-enable-pretty-printing",
20                         "ignoreFailures": true
21                     }
22                 ]
23             }
24         ]
25     }

tasks.json

 1 {
 2     // See https://go.microsoft.com/fwlink/?LinkId=733558
 3     // for the documentation about the tasks.json format
 4     "version": "2.0.0",
 5     "tasks": [
 6         {
 7             "taskName": "test",
 8             "type": "shell",
 9             "command": "g++",
10             "args": ["-g", "${file}", "-o", "${workspaceRoot}/test.exe"]
11         }
12     ]
13 }

编译成功后,在源码中设置断点,却无法命中断点。

后来查看官方c++编译调试文档和尝试,在launch.json文件的

"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]

后面加上

"preLaunchTask": "test" 配置,调试时就可以正常命中断点了。

注意:别忘了"setupCommands"的中括号’ ] ‘后面加上一个逗号。

时间: 2024-11-11 14:38:41

vscode c++ 编译生成后,调试时无法命中断点的相关文章

Visual Studio2012调试时无法命中断点

今天在调试代码的时候发现在Debug模式下无法命中断点,然后一步步去检查原因,最后发现是在项目-->属性-->生成-->高级-->调试信息被设置为None,然后在选项中将其选择为Full之后,问题就解决了. 然后看了一下,这几个选项:null .pdb-only.full,顾名思义当选择为null时,表示不输出调试信息,即当前项目不会生成.pdb文件,当我们选择启动时为Debug模式下,该项默认为full,当我们选择默认的启动项为Release模式时,该项默认为:pdb-only,

matlab调试时子函数断点不起作用

matlab调试代码时总是遇到这样一个奇怪的问题,就是当我在主程序(.m脚本)中调用子函数并在子函数中设置断点,然后开始调试运行主程序... 发现主程序直接运行到结束而并没有在调用子函数的时候在所设置的断点处停下来,而且所设置的断点也被清除... 但是如果在主程序中调用相应子函数的地方设置断点,调试时在此处停一下然后在继续运行则可以在子函数中的断点停下... 这个问题困扰我挺长时间,虽然用第二种方法能够实现需要的调试功能,但是总是要在主程序停一下,有点麻烦 so, 有事问谷歌--you get

AutoCAD.Net/C#.Net QQ群:193522571 VS2013与cad调试时的问题

1.首先如果直接将项目设置为启动项目,在项目属性里把启动项目修改为cad.exe的路径,则无法进行任何调试,无法命中断点. 2.还有另一种方式,就是把 acad.exe放到解决方案中,并将其设置为启动项目,此时按F5会启动CAD,不过别的项目默认是不会自动生成的,因此会导致调试代码与原来生成的代码不一致,那么是否是每次在按F5之前先把项目手动生成一次呢,那还不烦死了,没错. 3.还好找到问题出在什么地方了,接合它2种方式把“生成”/“批生成”中当前你正在调试的项目勾上,那么每次按F5时,调试器会

解决VS调试时断点不会命中的问题

在VS2010中进行ArcMap Add-in插件开发(ArcEngine10.1,ArcGIS10.1),运行时为.NET4.0,在程序中设置了断点进行调试,但是运行后程序并不会在断点处停止,且原来深褐色的断点圆圈标记变成了白色,还有个警告的符号,提示:当前不会命中断点,还没有为该文档加载任何符号. 网上搜索这句警告提示的解决办法发现这个问题很常见,解决办法也有好多.我按照网上的办法一一试了一遍结果都不能解决我的问题.又临近崩溃的边缘,差点想重装VS了. 由于运行程序时会自动启动ArcMap,

解决VS调试时断点不会命中

断点调试是VS中的一大利器,有了它我们可以快速定位到代码的问题所在.在某些情况下会导致设置了断点后程序无法在断点处停下,下面分4种情况来解决断点不会命中的问题 百度经验:jingyan.baidu.com 方法/步骤 1 1,检查VS的调试模式.VS的调试分为两种,Debug和Release.Debug是专门真对检查程序的bug而设置的一种模式.Release模式对程序的编译进行了优化,一般用于程序发布.首先确保是在Debug模式下设置的断点. 步骤阅读 2 2,检查设置断点的模块在调试时有没有

vs2008 调试时不会命中断点,源代码与原始版本不同,解决办法

当前不会命中断点,源代码与原始版本不同,解决办法 1.应该是自己一行里写的代码太长了 格式化一下 或者 换下行 2. VC直接把整个文件格式化了一次,断点就可以用了 菜单:编辑-〉高级-〉设置选定内容的格式 (Ctrl+K, Ctrl+F) 通过比较文件发现是由于制表符Tab(0x09)引起的,原因不详.

调试时设置条件断点

一个好的调试器,能够帮助程序员处理很多自动化的工作.试想下列的情形: 错误是发生在一个循环当中,只在循环遍历了若干次以后,才会出现. 错误只在程序中某个变量为一个特定的值,才会出现,而这个变量的值是在程序运行的过程中随机设置的. 多个线程都要调用同一个函数,而你只想在某几个线程执行这个函数的时候,中断程序的执行. 在上面列出来几种情况当中,如果调试器不能提供一个有效的方法帮助我们设置断点的话,调试这种程序将会是很痛苦的一件事.在第一种情况当中,用户不得不在循环中设置断点,并且要记住自己按下F5的

VS2017调试代码显示“当前无法命中断点,还没有为该文档加载任何符号”

VS2017升级之后,代码调试无法进入,显示"当前无法命中断点,还没有为该文档加载任何符号"的问题解决思路: 1.性" 2.选中启动项目-右键属性-生成,取消勾选"优化代码" 3.选中启动项目-右键属性-Web,勾选"ASP.NET"和"启用编辑并继续" 4.工具栏-调试-选项-常规,取消勾选"启用仅我的代码",取消勾选"要求源文件与原始版本完全匹配",勾选"启用编辑

vscode配置编译运行调试C/C++文件-windows环境

在windows环境下,编译运行小文件的C/C++环境 软件准备: vscode mingw64(官网下特别慢,可以在devc++安装软件里中找,放到全局变量中) 插件下载: Run Code C/C++ 运行配置: 安装好编译器和运行插件后,C/C++程序就可以运行了. 调试配置: 调试配置需要添加两个文件,在当前文件夹下,生成一个.vscode文件夹,里面生成两个文件 launch.json { "version": "0.2.0", "configu