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

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

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

>当我运行我的程序,它不会产生输出我期望输入我给它
>当我运行我的程序,它崩溃并给我一个堆栈跟踪.我有examined the stack trace,但我仍然不知道问题的原因,因为堆栈跟踪没有提供足够的信息.

调试器是一个可以检查程序状态的程序. technical means it uses for doing this对于了解如何使用调试器的基础知识并不重要.您可以使用调试器在程序到达代码中的特定位置时停止执行程序,然后检查程序中变量的值.您可以使用调试器来缓慢运行程序,一次一行代码(称为单步),同时检查其变量的值.

通过这样做,您可以发现变量是否具有错误的值,并且程序中的值在哪里更改为错误的值.

使用单步执行,您还可以发现控制流程是否符合您的期望.例如,当你期望它应该是执行if分支.

使用调试器的具体细节取决于调试器,在较小程度上取决于您使用的编程语言.

>您可以将调试器附加到已经运行程序的进程中.如果你的程序被卡住,你可能会这样做.
>实际上,从一开始就在调试器的控制下运行程序通常更容易.
>通过指示执行应该停止的行的源代码文件和行号,或者指示程序应该停止的方法/函数的名称(如果要停止),则指示程序应该停止执行的位置一旦执行进入方法).调试器用于使程序停止的技术意味着称为断点,此过程称为设置断点.
>大多数modern debuggers are part of an IDE,为您提供方便的GUI,用于检查程序的源代码和变量,并提供一个点击式界面,用于设置断点,运行程序和单步执行程序.
>使用调试器可能非常困难,除非您的程序可执行文件或字节码文件包括调试符号信息.您可能需要compile (or recompile) your program slightly differently以确保信息存在.

翻译自:https://stackoverflow.com/questions/25385173/what-is-a-debugger-and-how-can-it-help-me-diagnose-problems

转载注明原文:调试 – 什么是调试器,它如何帮助我诊断问题?