我已经写了5个月的程序了。我从C++开始,然后是C,最后是Java。在这段时间里,我从来没有在我的编译器上使用过调试功能,也不知道它是做什么的。到目前为止,在课堂上我还没有学到任何关于调试器的知识(Altho的课程才刚刚开始用C语言,我自己学习了C++和Java )。什么是调试,它做什么,你经常使用它吗?调试有什么用?我在谷歌上搜索过调试,但我不太明白。有人能正确地解释调试功能吗?到目前为止,据我所知,这是一个帮助你找到bug的功能,但我不太明白它是如何工作的。
发布于 2011-12-29 23:22:01
调试本身就是发现和消除bug的过程,不多也不少。所以,除非你是一个完美的程序员,从不犯任何错误,否则你已经做到了。
另一方面,调试器是一种辅助调试的工具。您仍然可以在没有调试器的情况下进行调试,但是使用调试器为您提供了更多的选项和方法。
您没有特别提到您正在谈论的调试器(Visual Studio one、gdb或...)我们真的不能告诉你如何使用它,但是,简而言之:
调试器将允许您一次执行一条指令,或一次执行一行。它会让你运行你的代码,直到你感兴趣的地方,然后停止。当代码停止时,您可以检查变量的值,以确保一切正常,在某些情况下,甚至可以在运行时修改内容以测试各种场景。
不使用调试器进行调试的一些技术包括:
< code >F29
还有更多。
发布于 2011-12-29 23:20:32
调试使您可以在代码执行的每个步骤检查变量的值。这是一个发现愚蠢错误的好方法(还有其他)。例如,您可能无法捕获此off-by-one错误:
for (int i = 0; i <= 10; i++)
{
MethodThatShouldExecuteTenTimes(i);
}如果使用调试器单步执行代码,您将看到该方法被调用了11次。
发布于 2011-12-29 23:23:14
如果你写的程序总是第一次就能工作,你就永远不需要找出bug。
如果程序可以编译,但不能工作,那么如何找出哪里出了问题呢?
添加大量的print语句是可行的,但是能够单步执行函数、遍历函数并检查内存存储是非常有帮助的。
有人可能会说,调试就像暴力--平庸之人的最后避难所!
但有时,我们没有足够的能力来避免bug,而调试器使生活变得更美好。
https://stackoverflow.com/questions/8669569
复制相似问题