析构函数调用行

时间:2015-11-26 14:49:27

标签: c++ gcc

我想找到一个文件和一行(gcc __FILE____LINE__定义)调用析构函数的地方。我设法在构造函数中将参数传递给包装类。

由于析构函数不能接受任何参数,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以在Linux上使用backtrace() and backtrace_symbols(),但C ++不提供步行堆栈的标准功能。

如果您只是想了解执行以进行调试,则应使用调试器附加并在析构函数中设置断点。

如果您有共享指针,并且您关心事后清理谁,那么您可能不想使用共享指针。更改您的设计以使用非拥有引用(std::weak_ptr),而不是内存的真正所有者。