JDB - 断点
本章解释断点的概念以及如何在程序中设置断点。断点在调试时在特定代码行处引入显式停止或暂停程序的执行。在程序执行过程中获取有关程序中变量的知识很有用。
句法
以下命令在特定行号处设置断点:
> stop at <class name>:<Line no>
以下命令在特定方法或特定变量上设置断点:
> stop in <class name>:< Method name | Variable name>
例子
以下示例显示如何在类中设置断点。
public class Add { public int addition( int x, int y) { int z = x + y; return z; } public static void main( String ar[ ] ) { int a = 5, b = 6; Add ob = new Add(); int c = ob.addition(a,b); System.out.println("Add: " + c); } }
将以上文件保存为Add.java。使用以下命令编译该文件:
\>javac Add.java
调试
我们举个例子来进行调试。在这里,我们通过在 main() 上设置断点来开始调试过程。调试过程中应遵循的步骤如下:
第 1 步:启动 JDB 会话
以下命令在 Add 类上启动 JDB 会话以进行调试:
\> jdb Add
第 2 步:设置断点
以下命令在 Add 类的 main() 方法上设置断点。
> stop in Add.main
如果断点设置成功,您将看到以下输出:
Deferring breakpoint Add.main. It will set after the class is loaded. >
第三步:开始调试
以下命令开始执行 Add 类:
> run Add
如果运行此命令,您将看到以下输出。在此输出中,您会发现执行停止在断点位置,即 main() 函数处。
执行在 main 方法的第一行停止,即“int a=5, b=6;” 或代码中的第 11 行。您可以在输出中观察到此信息。
第四步:继续执行
以下命令继续程序执行:
cont
它为您提供剩余的执行部分和输出,如下所示:
> Add:11 The application exited \>