【发布时间】:2018-09-12 02:05:44
【问题描述】:
我为以下代码在 Visual Studio 2017 社区版的每一行添加了断点
#include "pch.h"
#include <iostream>
using namespace std;
// base class
class Vehicle {
public:
Vehicle()
{
cout << " **** This is a Vehicle **** " << endl;
}
};
// sub class derived from two base classes
class Car : public Vehicle {
};
// main function
int main()
{
// creating object of sub class will
// invoke the constructor of base classes
Car obj;
return 0;
}
这里设置了一个动作,在每行执行时打印一个调试文本。
我构建了程序,然后运行了一个新的调试实例。我得到了这个
输出 #1:前 7 行
main function
class car
blank line inside car class
// sub class derived
vehicle class closed
blank line after car class
// main
然后我重建程序并运行一个新实例,我得到了这个
输出 #2:前 7 行
main function bracket open
// main
car class close
class car
blank line inside car class
blank line after car class
blank line after vehicle class
我已关闭优化。
我是 C++ 新手,想知道为什么会这样,是编译方式不同还是断点动作执行有问题?
编辑:我在屏幕截图中添加了输出的前 7 行。在那里你可以看到两次运行的断点动作的执行顺序是不同的。
注意:请注意,您看到的输出行是我使用断点 -> 操作功能添加的,这样 Visual Studio 将在遇到断点时打印出我的消息。执行不会停止它只会打印出我作为断点操作输入的任何文本
【问题讨论】:
-
Don't upload images of code on SO when asking a question。只需复制所有输入和输出文本并粘贴到此处
-
如果我将代码显示为文本,那么您将如何查看断点?不要因为这么小的原因而对问题投反对票。
-
@Vizkrig 说有断点就足够了。另外,请描述“正在发生的事情”是什么。
-
好的。我添加了代码并删除了屏幕截图
-
@Swordfish 问题在于两次运行的输出不同。我已经编辑了问题并添加了每个输出日志的前 7 行,现在区别非常明显。如果我的问题起初没有意义,我很抱歉。感谢您耐心指出这一点
标签: c++ visual-studio debugging breakpoints