c++ - Visual Studio C++ 2013 调试器不稳定的步骤行为

标签 c++ debugging visual-studio-2013

我正在使用 visual studio c++ 2013 Express Edition 调试一个 c++ 应用程序,我的调试器在我的程序的某个区域不规律地跳过代码行。这是一些背景信息。以及我正在观察的行为

  • 一切正常,直到我调用 make_shared< MyClass >(...)
  • 然后,当调试器进入我的 MyClass 构造函数(除了初始化列表之外是空的)时,每次我点击“下一行”时,调试器开始向前跳几行
  • 调试器登陆随机行,在不同的成员函数之间跳跃
  • 重要的是,调试器有时会在注释行停止
  • 我的代码似乎运行正确,如果我等到上面提到的这个 make_shared 调用后几分钟,我就可以放置断点并正常单步执行程序。似乎构造函数是唯一不起作用的东西。主要的烦恼是由于这种不稳定的行为而导致其他断点被击中,所以我不能轻易跳过它,如果这有意义的话。

这是我尝试解决这个问题的方法

  • 我已经尝试清除我的 bin 文件夹,删除 .exe 和 .pdb 文件以及那里的任何其他内容
  • 我尝试过完全重新制作项目,制定新的解决方案,将所有 .h 和 .cpp 文件复制到新项目中,然后重新构建并运行它。一切似乎都运行良好,但每当我在代码中放置某个断点时,我发现它无缘无故地被击中,并且这种不稳定的行为开始了。

我对任何人可以针对这种情况提供的任何一般性建议感兴趣。我已经在同一个项目上工作了很长时间,但我从来没有遇到过这个问题。当我做了一个全新的项目后它仍然存在时,我感到非常惊讶,我想知道是什么原因造成的。

编辑:仅供引用,我的应用程序中绝对没有什么花哨的东西。除了标准库之外,我不包括任何外部库。没有多线程或自定义build设置。当您创建一个新的、空的、普通的 visual studio 项目时,相对于默认设置的一切都是非常标准的。

最佳答案

问题也可能是由混合的行结尾引起的。看看here . 切勿在源文件中混用不同的行结尾(Linux 样式:LF '\n',版本 9 及以下的 Mac OS:CR '\r',Windows:CRLF '\r\n')。将代码从其他地方复制/粘贴到源文件时要小心。

转到 Visual Studio 中的“高级保存选项”并选择行尾并保存文件。

关于c++ - Visual Studio C++ 2013 调试器不稳定的步骤行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24918901/

相关文章:

c++ - 使用 libcurl - 摘要身份验证执行 HTTP POST,使用curl_easy_send\curl_easy_recv

c++ - 在多个线程上使用单个 io_service 有什么好处?

c++ - doxygen 文档 C++ header 中的当前日期

windows-7 - Windows现在必须重新启动,因为[我们的服务名称]服务意外终止

azure - 更改 Kubernetes Pod 日志记录

通过 Visual Studio 进行 C++ 调试 - vector 大小变化的观察点

c# - 单元测试;正确的做法?

visual-studio-2013 - Visual Studio JSON 多行字符串

c - 在 visual studio 2013 中 ctrl/f7 不起作用

c - C调试中符号数组的自动导出(教学目的)