我有一个相对简单的 C++ 控制台项目,它执行一些计算并写入输出文件。我试图确定为什么输出文件没有正确的输出。相反,我一直在与调试器作斗争。
由于某种原因我无法添加断点在某个函数的某一行之后.
无法到达第 1106 行之后到第 1214 行(函数末尾)放置的所有断点。
EDIT:我已将第一张图片中显示的特定代码移到函数中,它没有问题,但现在我无法在第 1079 行和函数结束之间中断。我重命名了该函数,但这没有什么区别。
当我查看反汇编代码时,我注意到第 1078 行有一个奇怪的事情:
我不确定这是否有什么不同,但 1078(第 962 行)之后的语句引用了一个名为 CSVData 的字符串类型的对象。该字符串创建为空白,但在运行时填充了大量字符。我最初想到的是堆栈溢出(没有双关语),但断点在应用程序启动时被禁用,这早在填充 CSVData 对象之前(10-15 分钟)。
第一个想法是:使用之前的断点。然而,当我进入下一行时,它会将我带到一段我确信没有执行的代码(它完全在另一个函数中)。它继续以预定但与源无关的模式跳跃。请帮我。我对这个已经失去理智了!
在来这里提问之前,我已经用谷歌搜索了这个问题。我尝试过以下操作:
- 删除所有文件
- 创建新的 Win32 控制台项目并仅添加
5 个头文件和 5 个源文件。
- 重置 Visual Studio 设置
- 禁用优化
- 取消选中“要求源文件与原始版本完全匹配”
- 使用“调试”配置
- 使用Notepad++验证EOL字符
我认为可能导致此问题的一个问题是 Intel Parallel Studio Composer XE 2015 for Fortran,因为它为 FPP 项目添加了内联和优化选项。我已卸载并重新启动,试图消除该安装中的任何问题。
任何建议都将受到欢迎。谢谢。
我以前遇到过这个问题。
尝试这个:
文件->高级保存选项->
将“行结尾”设置为“Windows (CR LF)”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)