Visual Studio2012调试时无法命中断点

 今天在调试代码的时候发现在Debug模式下无法命中断点,然后一步步去检查原因,最后发现是在项目--》属性--》生成--》高级--》调试信息被设置为None,然后在选项中将其选择为Full之后,问题就解决了。

  然后看了一下,这几个选项:null 、pdb-only、full,顾名思义当选择为null时,表示不输出调试信息,即当前项目不会生成.pdb文件,当我们选择启动时为Debug模式下,该项默认为full,当我们选择默认的启动项为Release模式时,该项默认为:pdb-only,而且输出的文件的大小明显不同,前者明显大很多。

那么在Release模式下,pdb文件到底优化了些什么内容呢?

那么首先来介绍一下什么是pdb文件。    

  .pdb文件:

  程序数据库文件(Program Database File)。默认设置下,Debug的PDB是full,保存着调试和项目状态信息、有断言、堆栈检查等代码,可以对程序的调试配置进行增量链接。

而Release的默认设置对PDB指定为pdb-only,保存着程序出了什么错误,以及错误在哪行,所以在代码进行调试时选择Debug作为启动项目,并且输出完整的调试信息才是正确的!

时间: 2024-10-06 05:17:17

Visual Studio2012调试时无法命中断点的相关文章

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; 1

用Natvis定制C++对象在Visual Studio调试时如何显示

博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用Natvis定制C++对象在Visual Studio调试时如何显示.

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

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

visual studio 调试时遇到 System.BadImageFormatException

System.BadImageFormatException”类型的未经处理的异常在 未知模块. 中发生 其他信息: 未能加载文件或程序集“SendYourIP.exe”或它的某一个依赖项.生成此程序集的运行时比当前加载的运行时新,无法加载此程序集. 原因是:把.NET2.0框架改为.NET 4.0 且APP.CONFIG中有以下配置造成的: <startup useLegacyV2RuntimeActivationPolicy="true">    <support

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)引起的,原因不详.

VS2015--在 Visual Studio 中调试时映射调用堆栈上的方法

https://msdn.microsoft.com/zh-cn/library/dn194476.aspx 在 Visual Studio 中调试时映射调用堆栈上的方法 创建代码图,以便在调试时对调用堆栈进行可视化跟踪.你可以在图中进行标注以跟踪代码执行的操作,以便专注于查找 Bug. 生成调用堆栈图 1 开始调试.(键盘:"F5") 2 在你的应用进入中断模式或你单步执行某一函数之后,请选择"代码图".(键盘:Ctrl + Shift + `) 当前的调用堆栈在