首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试有用吗?

调试有用吗?
EN

Stack Overflow用户
提问于 2011-12-29 23:15:58
回答 4查看 125关注 0票数 2

我已经写了5个月的程序了。我从C++开始,然后是C,最后是Java。在这段时间里,我从来没有在我的编译器上使用过调试功能,也不知道它是做什么的。到目前为止,在课堂上我还没有学到任何关于调试器的知识(Altho的课程才刚刚开始用C语言,我自己学习了C++和Java )。什么是调试,它做什么,你经常使用它吗?调试有什么用?我在谷歌上搜索过调试,但我不太明白。有人能正确地解释调试功能吗?到目前为止,据我所知,这是一个帮助你找到bug的功能,但我不太明白它是如何工作的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-29 23:22:01

调试本身就是发现和消除bug的过程,不多也不少。所以,除非你是一个完美的程序员,从不犯任何错误,否则你已经做到了。

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

您没有特别提到您正在谈论的调试器(Visual Studio one、gdb或...)我们真的不能告诉你如何使用它,但是,简而言之:

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

不使用调试器进行调试的一些技术包括:

  • print insertion,您可以在代码中使用打印命令来跟踪代码运行时的状态;
  • 代码阅读,您可以阅读代码,并尝试找到您的意图与实际编写的地方不同的地方
  • mug对话;您可以尝试向您的朋友(或马克杯,或办公桌上的企鹅玩偶)解释您的代码,并在此过程中查看您的逻辑错误所在
  • binary cut search,您可以一次删除代码块,并查看错误是否仍然存在

< code >F29

还有更多。

票数 4
EN

Stack Overflow用户

发布于 2011-12-29 23:20:32

调试使您可以在代码执行的每个步骤检查变量的值。这是一个发现愚蠢错误的好方法(还有其他)。例如,您可能无法捕获此off-by-one错误:

代码语言:javascript
复制
for (int i = 0; i <= 10; i++)
{
    MethodThatShouldExecuteTenTimes(i);
}

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

票数 1
EN

Stack Overflow用户

发布于 2011-12-29 23:23:14

如果你写的程序总是第一次就能工作,你就永远不需要找出bug。

如果程序可以编译,但不能工作,那么如何找出哪里出了问题呢?

添加大量的print语句是可行的,但是能够单步执行函数、遍历函数并检查内存存储是非常有帮助的。

有人可能会说,调试就像暴力--平庸之人的最后避难所!

但有时,我们没有足够的能力来避免bug,而调试器使生活变得更美好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8669569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档