我打算在我的软件中添加大量的诊断信息。现在,我正在考虑如何执行此操作的总体策略,因为仅临时添加此类代码可能会导致严重的困惑。
您对此有任何经验吗?
我要监视:
我的软件是一个类似处理的工具,通常可以像其他处理或计算工具一样工作,例如lame mp3编码器。这就是为什么这样的总体统计数据收集对我来说确实有意义。
我目前正计划为要监视其创建/破坏的每个对象添加一个基类。基类将在其构造函数和析构函数中记录适当的信息。 还有什么可以做的??
class LifeCycleProbe {
char * name;
LifeCycleProbe(char * _name) : name(_name) {
some::important::object.created(_name);
}
~LifeCycleProbe() {
some::important::object.destroyed(_name);
}
}
class MonitorMe : private LifeCycleProbe {
MonitorMe() : LifeCycleProbe("MonitorMe") {
// ...
}
}
最佳答案
我首先想到的是,您可能可以充分利用单独的配置工具。这也将消除更改源代码以允许它的需要。
我可以推荐的工具:
这些工具可以轻松帮助您找到所有问题的答案。
关于c++ - C++运行时调试(诊断策略和构造),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1098069/