Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.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++_Memory_Heap - Fatal编程技术网

C++ 如何修复由于堆损坏而导致的错误

C++ 如何修复由于堆损坏而导致的错误,c++,memory,heap,C++,Memory,Heap,当我的应用程序崩溃时,我有以下调用(通过MSVC210保存转储功能和winbdg在第二次使用k命令创建): 这似乎是由于堆损坏造成的 我不知道如何或在我的代码中寻找什么来修复这个bug 有什么最佳实践可以修复这个错误吗 非常感谢堆损坏可能是由许多原因造成的,并且很难通过代码分析检测此类代码。最好的方法是: 通过或或任何此类内存分析工具运行您的代码。它们将帮助您确定到底哪里出了问题,并将向您指出 看看: 了解您可以使用的其他内存分析工具。堆损坏可能是由多种原因造成的,并且很难通过代码分析检测此类

当我的应用程序崩溃时,我有以下调用(通过MSVC210保存转储功能和winbdg在第二次使用k命令创建):

这似乎是由于堆损坏造成的

我不知道如何或在我的代码中寻找什么来修复这个bug

有什么最佳实践可以修复这个错误吗


非常感谢

堆损坏可能是由许多原因造成的,并且很难通过代码分析检测此类代码。最好的方法是:

通过或任何此类内存分析工具运行您的代码。它们将帮助您确定到底哪里出了问题,并将向您指出

看看:


了解您可以使用的其他内存分析工具。

堆损坏可能是由多种原因造成的,并且很难通过代码分析检测此类代码。最好的方法是:

通过或任何此类内存分析工具运行您的代码。它们将帮助您确定到底哪里出了问题,并将向您指出

看看:


了解您可以使用的其他内存分析工具。

我建议首先不要损坏堆。名称
RtlAllocateHeapSlowly
让我笑了起来。;-)我建议首先不要破坏堆。名称
RtlAllocateHeapSlowly
让我笑了起来。;-)问题是Purifyplus将极大地降低我的应用程序的性能,这将导致生产的高速化environement@Guillaume07:如果您的代码正在做一些有趣的事情,这些内存分析工具将能够检测到它,即使不是在生产环境中。此外,这仅用于检测错误并最好在调试版本上修复它,而不用于发布版本。非常感谢“如何调试堆损坏错误”链接!但在dev中,可能不会执行导致应用程序崩溃的代码,因为我不会被我将要做的不同动作所覆盖dev@Guillaume07:如果我是你,并且我非常想追踪这个bug,我会抓住机会尝试一下,因为工具发现这个bug的概率很高。问题是Purifyplus会极大地降低我的应用程序的性能,从而使生产效率提高速度限制environement@Guillaume07:如果您的代码正在做一些有趣的事情,这些内存分析工具将能够检测到它,即使不是在生产环境中。此外,这仅用于检测错误,最好是在调试版本上修复它,而不是在发布版本上。非常感谢链接“如何调试堆损坏错误?" !但在dev中,可能不会执行导致应用程序崩溃的代码,因为我将在中执行的不同操作不会涵盖这些代码dev@Guillaume07:如果我是你,并且我非常想追踪这个bug,我会抓住机会尝试一下,因为工具发现这个bug的概率很高。
0012c720 7d684c89 0012c93c 7d656a16 063acab8 ntdll!DbgBreakPoint
0012c728 7d656a16 063acab8 0000035c 035f0000 ntdll!RtlpBreakPointHeap+0x28
0012c93c 7d685892 035f0000 50000161 0000035c ntdll!RtlAllocateHeapSlowly+0x231
0012c9b0 7d65695e 035f0000 50000161 0000035c ntdll!RtlDebugAllocateHeap+0xaf
0012cbcc 7d62ba89 035f0000 40000060 0000035c ntdll!RtlAllocateHeapSlowly+0x41
0012cdfc 10308343 035f0000 40000060 0000035c ntdll!RtlAllocateHeap+0xe9f
0012ce14 1031697c 0000035c c8fa7bd5 0012deb0 MSVCR100D!_heap_alloc_base+0x53
0012ce5c 1031671f 00000338 00000001 00000000 MSVCR100D!_nh_malloc_dbg+0x2dc
0012ce7c 103166cc 00000338 00000000 00000001 MSVCR100D!_nh_malloc_dbg+0x7f
0012cea4 10319c5b 00000338 00000000 00000001 MSVCR100D!_nh_malloc_dbg+0x2c
0012cec4 10307db1 00000338 04f26388 0012cfac MSVCR100D!malloc+0x1b
0012cee0 65302a58 00000338 c8876569 00000070 MSVCR100D!operator new+0x11