图 6. 变量断点
上图就是一个变量打的断点,在变量值初始化,或是变量值改变时可以停止.
当然变量断点上也是可以加条件的,和上面介绍的条件断点设置是一样的.
图 7. 用Inspect选项对表达式求值
要在 Debug 透视图的编辑器中求表达式的值,选中设置有断点的一整行,并在上下文菜单中选择 Inspect 选项。表达式是在当前堆栈帧的上下文中求值的,其结果显示在 Display 窗口的 Expressions 视图中。
用Watch选项来查看值
图 8. 查看变量
Variables 视图(在 Display 窗口中)显示了选中的堆栈帧中的变量值。要查看所请求的变量,只需展开 Variables 视图中的树直到您看到所请求的元素为止。您也可以在 Debug 视图中单步执行代码的同时,在 Variables 视图中查看变量。
图 9. 监测变量值
在Expressions窗口中输入type,newIssue等监测的变量值,当程序运行到138行的断点处停下,然后再Expressions窗口中就可以看到type,newIssue的变量值。
图 10. 热交换错误修正:实时代码修正
允许在调试器会话过程中更改源代码,这要比“退出应用程序,更改源代码,重新编译,再启动另一个调试会话”的一系列步骤好多了。要使用该功能,只需在编辑器中更改代码并恢复调试。实现了在运行中的应用程序中用经过修改的代码进行替换的能力。
在下面的值查看窗口中修改,用Ctr+S 保存后,变量值就会变成修改后的新值了。
我们可以在变量上右键,选择"Change Value..." 在弹出的对话框中修改变量的值。
图 11. 重新调试
这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的调用开始处。 回退时,请在需要回退的线程方法上点右键,选择 "Drop to Frame" .
图 12. 远程调试