为什么断点会在我的C ++代码中跳转?

安德烈·布什曼

MS Visual Studio 2013。

我看到断点正在运行时移动(C​​ ++代码)。我的C#代码中从来没有这样的行为,为什么我会用C ++做到这一点?我该如何解决?

#include <Windows.h>
int main(){
  HANDLE hFile = ::CreateFile(TEXT(""), 0, 0, NULL, OPEN_EXISTING, 0, NULL);
  if (INVALID_HANDLE_VALUE == hFile){
    DWORD err_code = ::GetLastError();
  } // In the IDE I set the breackpoint on this line for err_code value looking...
  return(0); // but in runtime the breackpoint moved to this line.
             // It moved back when the work finished.
}

我知道在这种情况下可以@err,hr在“监视”窗口中设置上一次查看错误信息的方式,但是断点行为对我来说很有趣。

dandan78

VS在C ++和C#中的行为有所不同。对于C ++,调试器将忽略不包含任何实际代码的行,并将不断移动断点,直到遇到包含某些代码的行为止。

某种相关的行为是,如果您尝试在发布模式下进行调试,则除非您知道发生了什么,否则许多行将被优化,甚至可以感觉到更加怪异。

这就是它的工作原理。

在您的特定情况下,您实际上并没有对错误代码做任何事情,只是将其分配给该if语句本地的变量在发布模式下,该行以及整个行可能if会被优化掉,因为它没有效果。因此,您可以在下一行将值输出到控制台,或者err_code在之前声明if,在这种情况下,关闭后它仍然是“活动的” }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么断点会在我的C ++代码中跳转?

来自分类Dev

为什么MATLAB会在我的classdef中删除断点?

来自分类Dev

为什么我不能在 CudaFy 库的 c# 代码中设置断点?

来自分类Dev

为什么打印消息不会在我的C#代码中打印?

来自分类Dev

汇编到C代码的跳转

来自分类Dev

为什么我的 C++ 代码会在 stdout 上得到响应?

来自分类Dev

我可以使“转到定义”跳转到Visual Studio 2013中的TypeScript代码吗?

来自分类Dev

为什么我的代码会在几个阶段返回错误的键?

来自分类Dev

为什么while循环会在我的代码中产生错误?

来自分类Dev

为什么我会在这段代码中收到ArgumentException?

来自分类Dev

为什么我会在此代码中收到分段转储错误?

来自分类Dev

为什么我会在传单中从左到右冲突方向?

来自分类Dev

为什么我的ibjects不会在javascript中变形?

来自分类Dev

为什么这会在 Java 中给我一个 ClassCastException,而它在 C++ 中运行良好?

来自分类Dev

为什么Netbeans不会在我的断点处停止?

来自分类Dev

为什么Netbeans不会在我的断点处停止?

来自分类Dev

为什么这样工作?我不明白为什么我的代码可以在C中工作

来自分类Dev

为什么此代码会在Java中引起ConcurrentModificationException?

来自分类Dev

为什么我的断点在CLion中没有命中?

来自分类Dev

在Visual Studio 2013中,为什么我的断点有时会“分离”?

来自分类Dev

在Visual Studio 2013中,为什么我的断点有时会“分离”?

来自分类Dev

为什么为每个模块设置日志记录级别都不会在我的代码中显示日志?

来自分类Dev

为什么在我的代码中需要 ',' 或 ')'?

来自分类Dev

为什么我的代码中的 if 语句被忽略?

来自分类Dev

为什么代码分析会在这里告诉我“不要多次处置对象”:

来自分类Dev

为什么代码分析会在这里告诉我“不要多次处置对象”:

来自分类Dev

为什么我的 Python 代码会在 write() 函数 Python 2.7 上写入随机符号

来自分类Dev

为什么我的编译器会在Java中给我这两个错误?

来自分类Dev

我很难理解为什么我会在 Python 中遇到这个 TypeError

Related 相关文章

  1. 1

    为什么断点会在我的C ++代码中跳转?

  2. 2

    为什么MATLAB会在我的classdef中删除断点?

  3. 3

    为什么我不能在 CudaFy 库的 c# 代码中设置断点?

  4. 4

    为什么打印消息不会在我的C#代码中打印?

  5. 5

    汇编到C代码的跳转

  6. 6

    为什么我的 C++ 代码会在 stdout 上得到响应?

  7. 7

    我可以使“转到定义”跳转到Visual Studio 2013中的TypeScript代码吗?

  8. 8

    为什么我的代码会在几个阶段返回错误的键?

  9. 9

    为什么while循环会在我的代码中产生错误?

  10. 10

    为什么我会在这段代码中收到ArgumentException?

  11. 11

    为什么我会在此代码中收到分段转储错误?

  12. 12

    为什么我会在传单中从左到右冲突方向?

  13. 13

    为什么我的ibjects不会在javascript中变形?

  14. 14

    为什么这会在 Java 中给我一个 ClassCastException,而它在 C++ 中运行良好?

  15. 15

    为什么Netbeans不会在我的断点处停止?

  16. 16

    为什么Netbeans不会在我的断点处停止?

  17. 17

    为什么这样工作?我不明白为什么我的代码可以在C中工作

  18. 18

    为什么此代码会在Java中引起ConcurrentModificationException?

  19. 19

    为什么我的断点在CLion中没有命中?

  20. 20

    在Visual Studio 2013中,为什么我的断点有时会“分离”?

  21. 21

    在Visual Studio 2013中,为什么我的断点有时会“分离”?

  22. 22

    为什么为每个模块设置日志记录级别都不会在我的代码中显示日志?

  23. 23

    为什么在我的代码中需要 ',' 或 ')'?

  24. 24

    为什么我的代码中的 if 语句被忽略?

  25. 25

    为什么代码分析会在这里告诉我“不要多次处置对象”:

  26. 26

    为什么代码分析会在这里告诉我“不要多次处置对象”:

  27. 27

    为什么我的 Python 代码会在 write() 函数 Python 2.7 上写入随机符号

  28. 28

    为什么我的编译器会在Java中给我这两个错误?

  29. 29

    我很难理解为什么我会在 Python 中遇到这个 TypeError

热门标签

归档