Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 分析字符串替换内存泄漏_C++_Unix_Memory Leaks_Solaris - Fatal编程技术网

C++ 分析字符串替换内存泄漏

C++ 分析字符串替换内存泄漏,c++,unix,memory-leaks,solaris,C++,Unix,Memory Leaks,Solaris,我一直在尝试分析在执行批量代码时发生的泄漏。在dbx中发现泄漏,泄漏如下图所示 Total Num of Leaked Allocation call stack Size Blocks Block Address ========== ====== =========== ======================================= 272033 4431 - oper

我一直在尝试分析在执行批量代码时发生的泄漏。在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
泄漏的分配调用堆栈总数
尺寸块
地址
==========  ====== =========== =======================================
272033 4431-运算符new

有人遇到过这种泄漏吗。是否可以使用DBX注释分析泄漏。由于这是一个巨大的代码溢出,代码泄漏的位置很难确定

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


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

一个在线快速检查显示,它看起来与您看到的类似。不过它已经很旧了-您使用的编译器版本是什么


如果是同一个问题,并且不可能进行完全升级,那么您的困难将是隔离调用代码的位置并重新编写代码以防止其发生。

您确定这确实是泄漏吗?你有没有看到这个过程在扩大?我问的原因是,我经常看到工具报告的泄漏不一定是真正的泄漏-通常是在可靠的第三方代码中。是的,我确信进程大小正在像任何事情一样增长。堆栈的整个内存都会丢失,进程会因为没有内存而崩溃。这是在regarous测试重复过程中发生的。好吧,公正的评论。有一种工具,比如“Purify”(虽然它是商业化的),你应该能够使用它,尽管它只会识别它发生在哪里,如果它在STL中,那么它是一个更大的问题。我也在下面贴了一个链接,你可能会觉得有用。