【发布时间】:2014-06-25 02:23:06
【问题描述】:
我想知道 C++ 中是否有任何预定义的宏或某些东西可以追溯到触发析构函数的位置?
可能是这样的:
class myClass{
myClass();
~myClass();
};
myClass::~myClass(){
printf("Object destroyed in %s.\n", __TRACEBACKMACRO__);
}
int main(){
myClass tempClass;
return 0;
}
它应该输出如下内容:
Object destroyed in main().
最好也输出范围和命名空间信息。
附加信息: FUNCTION 或 func 宏似乎只适用于函数而不是结构和类。 reference。任何在结构和类中工作的宏?
【问题讨论】:
-
谢谢,但是范围和命名空间信息呢?
-
这是调试用的吗?然后在调试器的析构函数上设置断点。你在 Linux 上吗?
-
不要试图为每个对象找出它,只需动态分配它们并在需要时分配它们。
-
你基本上是在问如何找到堆栈跟踪。这不是标准的事情,但 GCC 和 MSVC 似乎都有(不同的)方法来做到这一点。 stackoverflow.com/questions/3899870/print-call-stack-in-c-or-cstackoverflow.com/a/691742/321772
标签: c++ class oop destructor