c++ - 我怎么知道谁持有 shared_ptr<>?

标签 c++ boost memory-leaks shared-ptr

我使用 boost::shared_ptr在我的 C++ 应用程序中。内存问题真的很严重,应用程序占用大量内存。

但是,因为我将每个新对象放入 shared_ptr ,当应用程序退出时,不会检测到内存泄漏。

必须有 std::vector<shared_ptr<> > 之类的东西持有资源的池。我怎么知道谁持有 shared_ptr ,什么时候调试?

很难逐行查看代码。代码太多...

最佳答案

仅通过查看 shared_ptr,您无法知道“兄弟指针”在哪里。您可以测试一个是否为 unique() 或获取 use_count(),其中 other methods .

关于c++ - 我怎么知道谁持有 shared_ptr<>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1061634/

相关文章:

c++ - 为什么 clang 使用 libstdc++ 删除包含 std::optional 的类型上的显式默认构造函数?

c++ - 在可变模板参数上实现数学补码逻辑

c++ - 串行 boost 线程加入循环与并行加入主线程

c++ - 线程 sleep 导致内存泄漏

javascript - jQuery 3.1.1 appendTo 和空内存泄漏

c++ - 在 C++ 中存储常量数据的最佳方式

c++ - 会用VS2012进行boost编译吗?

c++ - 如何从函数/类接收 map<A, B>&?

android - 通过 IClipboardDataPasteEventImpl 内存泄漏

c# - 将包含数组字段的结构数组从 C++ 编码到 C#