分析字符串替换内存泄漏

Analyse String replace Memory leak

本文关键字:内存 泄漏 替换 字符串      更新时间:2023-10-16

我一直在尝试分析执行批量代码时发生的泄漏。泄漏是在dbx中发现的,泄漏如下所示。

  Total     Num of  Leaked     Allocation call stack
  Size      Blocks  Block
                    Address
==========  ====== =========== =======================================
272033    4431      -      operator new < std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__getRep < std::basic_string<char,std::char_traits<char>,std::allocator<char> >::replace

有没有人遇到过这种类型的泄漏。是否可以使用 DBX 注释分析泄漏。由于它是一个巨大的代码,因此代码泄漏的位置很难

我会尝试使用 libumem 运行该应用程序,这有助于识别内存管理问题。

尽管代码库很大,但您可以通过有针对性的代码审查来解决这个问题。

在线快速检查显示此问题,看起来与您所看到的相似。虽然它很旧 - 你使用的是什么编译器版本?

如果是同样的问题,并且不可能进行完全升级,那么您的困难将是隔离调用该代码的位置并对其进行返工以防止它发生。