调试有用吗?

时间:2011-12-29 15:15:58

标签: debugging

我已经编程了大约5个月了。我从C ++开始,然后是C,最后是Java。在这段时间里,我从未在编译器上使用调试功能,也不知道它的用途。到目前为止,在课堂上我没有教过调试器(Altho类几乎没有从C开始,我自己学习了C ++和Java)。什么是调试,它做什么,你经常使用它吗?调试有什么用途?我用谷歌搜索调试,但我不太明白。谁能正确解释调试功能?从我到目前为止的理解,这是一个帮助你找到错误的功能,但我不知道它是如何工作的。

4 个答案:

答案 0 :(得分:4)

调试本身就是查找和消除错误的过程,仅此而已。所以,除非你是一个从不犯错误的完美程序员,否则你已经做到了。

另一方面,调试器是一个协助调试的工具。您仍然可以在没有调试器的情况下进行调试,但使用调试器可以为您提供更多选项以及实现方法。

如果你没有具体提到你正在谈论的调试器(Visual Studio one,或者gdb,或者......),我们无法真正告诉你如何使用它,但简而言之:

调试器允许您一次执行一条指令,或一次执行一行。它会让你运行你的代码,直到你感兴趣的地方,然后停止。当代码停止时,您可以检查变量的值以确保事情有序,并且在某些情况下甚至可以修改运行中的内容以测试各种场景。

不使用调试器进行调试的一些技巧是:

  • 打印插入,您可以使用打印命令来丢弃代码,以便在代码运行时跟踪代码状态,
  • 代码阅读,您在其中阅读代码并尝试找到您的意图与实际写入的内容不同的地方
  • 马克杯对话,你试图向你的朋友(或一个杯子,或桌面上的企鹅娃娃)解释你的代码,并在此过程中看到你的逻辑出错的地方
  • 二进制剪切搜索,您可以一次删除代码块并查看错误是否仍然存在

还有更多。

答案 1 :(得分:1)

调试允许您在代码执行的每一步检查变量的值。这是找到愚蠢错误的好方法(其中包括)。例如,您可能无法捕获此错误:

for (int i = 0; i <= 10; i++)
{
    MethodThatShouldExecuteTenTimes(i);
}

如果您使用调试器单步执行代码,您将看到该方法被调用了11次。

答案 2 :(得分:0)

如果你编写的程序总是第一次运行,你将永远不需要找到错误。

如果程序编译但不起作用,你如何解决出错的问题?

添加大量的print语句是有效的,但是能够进入函数,逐步执行它们并检查内存存储是非常有用的。

可以说调试就像暴力 - 无能为力的最后避难所!

但有时候,我们并没有足够的能力来避免这个错误,调试器会让SOOOOOO的生活更加美好。

答案 3 :(得分:0)

调试是查找未按照您希望的方式执行的代码的过程。为了有效地完成工作,这是一项非常必要的技能。它可以包含很多东西。包括但不限于:

  • 读取程序生成的日志文件
  • 通过网络查看程序传输的消息
  • 查看程序的输出(例如,网页显示并正确操作)
  • 查看异常的堆栈跟踪
  • 使用调试器逐行逐步执行代码,以便在执行期间查看特定点的变量值。

调试器不仅可用于查找程序中的错误。它可以帮助您了解现有代码的运行方式。您可以在代码中设置断点:一个标记,告诉调试器停止在该行上执行。然后,从那时起,您可以逐行逐步浏览源代码。

为了更好地使用调试器,我建议您在代码中设置断点并逐步执行。然后,您将看到我和其他人所说的确切内容。您使用的开发环境应该有关于如何使用包含的调试器的说明。