破坏者呼叫线
Destructor call line
我想找到一个文件和调用析构函数的位置的一行(gcc __FILE__
,__LINE__
定义)。在构造函数将参数传递给包装类的情况下,我设法处理了这一问题。
由于析构函数不能接受任何参数,有办法做到这一点吗?
您可以在linux上使用backtrace()
和backtrace_symbols()
,但C++没有提供遍历堆栈的标准功能。
如果您只是为了调试而试图理解执行,那么您应该附加一个调试器,并在析构函数处设置一个断点。
如果你有共享指针,并且你关心谁会在之后真正清理,那么你可能不想使用共享指针。将您的设计更改为在内存的真正所有者之外的任何位置使用非拥有引用(std::weak_ptr
)。
相关文章:
- 呼叫运营商<<临时
- 呼叫 QSound,它们之间有延迟 Qt C++
- 什么是呼叫说明
- 为什么make_shared在不同的呼叫中分配相同的地址?
- 错误:类型"std::__1::basic_string<char>"不提供呼叫运算符
- 设备IO控制呼叫崩溃
- 根据呼叫位置进行记忆
- 成员呼叫通过接线员<<
- QSerialPort 手动 RTS 开/关未同步呼叫
- 将清除共享智能指针上的呼叫重置
- 来自 Pharo Smalltalk 的 ffi 呼叫上的分段错误
- C/C++ 在条件和阻止呼叫之间收到信号情报
- 将数据集从 R 传递到C++(使用 .呼叫)
- 无匹配函数呼叫getline()
- 通过呼叫constexpr函数来定义静态constexpr成员
- 组件X86转换为ARM功能呼叫,其中有不同数量的参数为ARM
- 在放松试验块期间,通过投掷破坏者而导致这种怪异的行为
- 为什么我的虚拟破坏者多次执行这些执行
- 在不合格的呼叫上,Clang和GCC上的错误
- 破坏者呼叫线