使用step-overdebugging上下跳转光标
cursor jump up and down using step over debugging
我遇到了一个非常奇怪的问题。我正在使用步骤来调试我的代码。我本来以为光标应该逐行按顺序移动。但出现以下现象
using namespace std;
ranlux48_base generator(1);
uniform_real_distribution<double> uniform(0.0, 1.0);
1 int main()
2 {
3 double R1 = uniform(generator);
4 cout << R1 << endl;
5 if (R1 < pH)
6 {
7 Quality[i] = vH;
8 }
9 else
10 {
11 Quality[i] = vL;
12 }
13 cout << Quality[i] << endl;
14 }
奇怪的是:光标首先移到第3行,试图生成一个随机数,然后移到第4行(看起来第3行已经执行了),但随后又移回第3行、然后移到了第4行,然后执行第4行并打印出随机数。为什么光标向后移动?
很可能是使用编译器的默认优化设置编译代码的,这使编译器可以更自由地重新排序编译的代码,以达到优化目的。
正如您所发现的,这使得调试成为一种痛苦的体验。
关闭编译器提供的所有优化设置。这会使生成的代码运行速度慢一点,但更容易调试
相关文章:
- 如何在Qt C++中更改光标
- constexpr上下文中std::initializer_list的验证
- 检查一个类型是否直接派生自"enable if"上下文中的另一个类型(是其子类型)
- 在 main.cpp 的上下文中找不到目录(带有 CMake 的快板)
- Win32 API 控制台光标在 WriteConsole 后不移动
- 使用 'typename' 关键字将非类型视为依赖上下文中的类型
- 在 macOS 中使用 C/C++ 设置鼠标光标图像
- 有时可以在 constexpr 上下文中使用非 constexpr 变量?
- 如何在 assert() 和 static_assert() 之间调度,如果在 constexpr 上下文中依赖?
- 如何更改输出的位置或光标在输出处,以便在"Code Blocks"中C++
- 指向模板上下文中的成员函数或静态函数的指针
- 假设声明中某些上下文中需要的名称查找规则是什么
- 隐式转换是否应该在模板参数的上下文中工作?
- 使用 C++将文本光标移动到屏幕中不可见的行
- 在此上下文中受保护 c++
- 关于在需要常量表达式的上下文中使用的glvalue常量表达式的问题
- 在C++单元测试上下文中,抽象基类是否应将其他抽象基类作为函数参数
- 在 C# 中更改鼠标光标图标
- ASCII 旋转光标 (TUI) 动画出现问题
- 使用step-overdebugging上下跳转光标