关于windows下堆访问错误的解决方案
output:
This may be due to a corruption of the heap, and indicates a bug in uetool.exe or any of the DLLs it has loaded.
The output window may have more diagnostic information
The thread 'Win32 Thread' (0xdd0) has exited with code 0 (0x0).
HEAP[uetool.exe]: Invalid Address specified to RtlFreeHeap( 01370000, 023582E1 )
Windows has triggered a breakpoint in uetool.exe.
类似的这种错误,请问有没有什么比较好的工具或方法,可以准确的定位错误,也比较易用。目前我用的是windbg,比较旧了,也能找到错误,但是无法和VS的调试一起用,在调试过程中如果去附加报错。觉得不是很好用。
求推荐更好的调试工具~。并简单介绍一下。
Answers
错误应该是_CrtIsValidHeapPointer导致的,因为是heap不一致,你可以看下MSDN的解释:
The _CrtIsValidHeapPointer function is used to ensure that a specific memory address is within the local heap. The local heap refers to the heap created and managed by a particular instance of the C run-time library.
If a dynamic-link library (DLL) contains a static link to the run-time library, it has its own instance of the run-time heap, and therefore its own heap, independent of the application's local heap