GDB 跳过了我的代码!

2023-12-30

所以,我定义了一个类

DataLoggingSystemStateReceiver
{
DataLoggingSystemStateReceiver()
:   // initializer list
{
    // stuff
}

//  ... other functions here

};

主要是,我像这样实例化 DataLoggingSystemStateReceiver:

int main()
{
    // ... run stuff
    Sensor sensor(port, timer);

    DataLoggingSystemStateReceiver dlss();

    Log::notice("started");
    return 0;
}

但是,当我在 gdb 中单步执行此代码时,它会运行:

Sensor sensor(port, timer);

skips

DataLoggingSystemStateReceiver dlss();

并继续

Log::notice("started");

是什么赋予了?


EDIT:通过改变

DataLoggingSystemStateReceiver dlss();

to

DataLoggingSystemStateReceiver dlss;

在 main() 中,该行被执行。有人可以解释为什么吗?


This:

DataLoggingSystemStateReceiver dlss();

不声明自动变量。它声明了一个名为dlss不带参数并返回DataLoggingSystemStateReceiver.

你要:

DataLoggingSystemStateReceiver dlss;

该对象将被默认初始化,因此对于您的类类型,将调用默认构造函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GDB 跳过了我的代码! 的相关文章

随机推荐