由于堆问题我一直遇到崩溃问题,所以我猜某个地方正在发生缓冲区溢出。我如何检测它?
答案 0 :(得分:3)
我使用Compuware BoundsChecker作为VC6中错误检测的工具。它可以拾取缓冲区溢出。
您还可以尝试使用PageHeap这个Windows工具。
答案 1 :(得分:1)
我使用Rational Purify。
答案 2 :(得分:1)
您可以使用VC调试堆:http://msdn.microsoft.com/en-us/library/974tc9t1.aspx
VC6中也支持大多数(如果不是全部)crtdbg.h中的东西。
答案 3 :(得分:0)
在一些地方简单地插入_heapchk()Windows API函数并捕获错误(在我的情况下对数组的索引-1的访问)时,我得到了很好的结果。