作为新手 valgrind 用户,我无法弄清楚它输出以下消息的原因
1 个块中的 40 个字节肯定会在 loss 中丢失
有问题的代码行如下:
void KukaDevice::_init()
{
m_ops.insert(KukaDeviceSpace::OFF , &KukaDevice::_doNothing);
m_ops.insert(KukaDeviceSpace::INITIALIZING ,&KukaDevice::_doInitialization);
m_ops.insert(KukaDeviceSpace::STARTING ,&KukaDevice::_doStarting);
m_ops.insert(KukaDeviceSpace::MONITORING ,&KukaDevice::_doMonitoring);
m_ops.insert(KukaDeviceSpace::WORKING ,&KukaDevice::_doWorking);
m_ops.insert(KukaDeviceSpace::STOPPING ,&KukaDevice::_doStop);
m_ops.insert(KukaDeviceSpace::SHUTTINGDOWN ,&KukaDevice::_doShutdown);
}
其中变量定义为:
#ifndef KukaDevice_H
#define KukaDevice_H
#include <QMap>
class KukaDevice : public QObject
{
Q_OBJECT
/// High Level Operations
void _doNothing(); /// waits 10 ms
void _doInitialization();
void _doStarting();
void _doMonitoring();
void _doWorking();
void _doStop();
void _doShutdown();
/// Initialization
void _init();
typedef void (KukaDevice::*doFunc)();
typedef QMap<int,doFunc> OpStack;
OpStack m_ops;
};
#endif // KukaDevice_H
有什么提示吗?QMap 是否有可能产生泄漏?我是否以错误的方式使用 QMap?谢谢!
编辑: 也许这是相关信息:该消息仅在我终止应用程序时显示。