C ++:越来越复杂的错误误导了调试器

时间:2011-06-23 08:54:25

标签: c++ visual-studio debugging

似乎我项目中的错误正在不断发展。虽然在开始时,程序崩溃的原因很容易使用调试器(它在程序崩溃后指向的行),但它现在不同了。

许多错误导致程序在完全没有与之密切相关的仲裁地点崩溃。

  • 如何以更好的方式发现“隐藏”调试器中的错误?

(我使用Visual Studio 2010)

4 个答案:

答案 0 :(得分:2)

为内存损坏配置您的代码,memory overwritesmemory leaks

答案 1 :(得分:2)

根本原因分析。

当你发现一个明显的错误时,不要只修复错误,修复允许它的编码风格。

答案 2 :(得分:1)

使用内存损坏检查实用程序,如gflags或调试堆。 “浮动”粉碎几乎总是来自C ++程序中损坏的内存

答案 3 :(得分:1)

如果您有任何使用原始内存和指针的代码,请将其替换为使用std :: vector及其迭代器分配的内存。它将在Release模式下编译为完全相同的快速代码,但在Debug模式下它将使用已检查的迭代器,它将尽早捕获一些错误。