什么是调试器,它如何帮助我诊断问题?

这是一个通用的问题,以帮助有程序问题的新程序员,但不知道如何使用调试器来诊断问题的原因。

这个问题涉及两类更具体的问题:

  • 当我运行我的程序时,它不会产生我期望的输出我给它的输出。

  • 当我运行我的程序时,它会崩溃并给我一个堆栈跟踪。我已经检查了堆栈跟踪,但我仍然不知道问题的原因,因为堆栈跟踪不能为我提供足够的信息。

  • 当我运行程序时,由于分段错误(SEGV)而崩溃。

降价示例: [What is a debugger and how can it help me diagnose problems?](https://stackoverflow.com/q/25385173)


守着星空守着你
浏览 780回答 2
2回答

宝慕林4294392

调试器是一个程序,可以在程序运行时检查程序的状态。它用于执行此操作的技术手段对于理解如何使用调试器的基础知识并不重要。您可以使用调试器在程序到达代码中的特定位置时暂停程序的执行,然后检查程序中变量的值。您可以使用调试器非常缓慢地运行程序,一次一行代码(称为单步执行),同时检查其变量的值。使用调试器是预期的基本技能调试器是一个非常强大的工具,可帮助诊断程序问题。调试器适用于所有实用的编程语言。因此,能够使用调试器被认为是任何专业或发烧友程序员的基本技能。在自己寻求帮助之前,自己使用调试器被认为是自己应该做的基本工作。由于此站点适用于专业和发烧友程序员,而不是帮助台或指导站点,如果您对特定程序的问题有疑问,但未使用调试器,则您的问题很可能会被关闭和投票。如果你坚持这样的问题,你最终将被阻止发布更多。调试器如何帮助您通过使用调试器,您可以发现变量是否具有错误的值,以及程序中的值是否更改为错误的值。使用单步执行,您还可以发现控制流是否符合您的预期。例如,是否if应该按预期执行分支。有关使用调试器的一般说明使用调试器的细节取决于调试器,在较小程度上取决于您使用的编程语言。您可以将调试器附加到已运行程序的进程。如果您的程序被卡住,您可能会这样做。实际上,从一开始就在调试器的控制下运行程序通常更容易。您指明在那里你的程序应该停止通过指出执行应该停止生产线的源代码文件和行号执行,或通过指示方法/函数在该程序就停止了(如果你想停止的名字一旦执行进入方法)。调试器用于使程序停止的技术手段称为断点,此过程称为设置断点。大多数现代调试器都是IDE的一部分,为您提供方便的GUI,用于检查程序的源代码和变量,使用点击式界面设置断点,运行程序并单步执行。除非程序可执行文件或字节码文件包含调试符号信息,否则使用调试器可能非常困难。您可能必须稍微不同地编译(或重新编译)您的程序以确保信息存在。
打开App,查看更多内容
随时随地看视频慕课网APP