我有一个相对简单的 C++ 控制台项目,它执行一些计算并编写输出文件。我试图确定为什么输出文件没有正确的输出。相反,我一直在与调试器作斗争。
出于某种原因,我无法在某个函数的某行之后添加断点。
第 1106 行之后到第 1214 行(函数末尾)的所有断点均不可访问。
编辑: 我已将第一张图片中显示的特定代码移到函数中,它没有问题,但现在我无法在第 1079 行和函数结束之间中断。我重命名了该函数,但这没有任何区别。
当我查看反汇编时,我注意到第 1078 行有一件奇怪的事情:
我不确定这是否有所不同,但 1078 之后的语句(第 962 行)引用了一个名为 CSVData 的字符串类型的对象。该字符串创建为空白,但在运行时填充了大量字符。我最初在考虑堆栈溢出(没有双关语),但断点在应用程序启动时被禁用,这是在填充 CSVData 对象之前很久(10-15 分钟)。
第一个想法是:改用之前的断点。但是,当我进入下一行时,它会将我带到一段我确定不会执行的代码(它完全在另一个函数中)。它继续以预定但与源无关的模式跳来跳去。请帮我。我对这个失去了理智!
在这里提问之前,我已经广泛搜索了这个。我尝试了以下操作:
- 删除所有文件
- 正在创建新的 Win32 控制台项目并仅添加 5 个头文件和 5 个源文件。
- 重置 Visual Studio 设置
- 禁用优化
- 取消选中“要求源文件与原始版本完全匹配”
- 使用“调试”配置
- 使用Notepad++验证EOL字符
我认为可能导致此问题的一个问题是 Intel Parallel Studio Composer XE 2015 for Fortran,因为它为 FPP 项目添加了内联和优化选项。我已卸载并重新启动以尝试从该安装中删除任何问题。
欢迎提出任何建议。谢谢。
最佳答案
我以前遇到过这个问题。
试试这个:
File->Advanced Save Options->
set 'Line endings' to 'Windows (CR LF)'.
关于C++ VS2013 调试器断点 : Not Hit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25877144/