关于调试

遇到问题不能怕,以前一报错的时候就束手无措,不知道该怎么下手。学会了调试以后,有错也不怕了。

遇到错,先调试,找到问题根源所在,有些是粗心造成的,有些是方法不对,总是任何问题都会有它的出错原因。

下面看看如何调试:

设置断点
    调试的第一步就是找到代码出错的位置。断点设置能帮你完成这个。
    断点是你你放置在程序里面的临时标记,它使得调试器知道在哪儿停止程序的执行。例如,假如程序里面的某个申明引发问题,你可以将断点设置在包含那个申明的行上,然后运行程序。在那个申明被执行前程序停止执行。然后你可以检查变量、寄存器,存储器以及堆栈的内容,然后跨过(或执行)那个申明查看问题是怎么引起的。
    不同的调试器支持不同的断点。一些通用的类型是:
    行断点 在程序特定行的代码被执行前被引发。
    方法断点 在到达被设置成断点的方法时被引发。
    计数断点 在某个计数器达到或超过某个特定值时被引发
    异常断点 在代码抛出一个特定异常时被引发
    储存变化断点 在存储在特定地址范围的内容被修改时引发
    地址断点 在被设置成断点的地址达到时被引发
    注重: 一些调试器只在编译版本的Java代码 (使用just-in-time 编译器生成的代码) 上支持某些断点类型而不支持解释代码(使用javac 工具生成的代码)。一个例子就是地址断点。每个工具在你能设置断点的方式上可能有些不同。检查你的工具的文档。
    你可能会问,我如何知道在哪儿放置断点?
    假如你对这个问题完全没有感觉,你可以在main() 方法的开始设置断点
    假如你的代码产生堆栈复写(stack trace), 在程序产生它的地方设置断点。你将在堆栈复写里面看到源代码中出问题的行号。
    假如你的输出或者图形显示的特定部分没有正确的显示预定信息(例如文本域显示错误的文本),你可以在该组件被创建的地方设置断点。然后你可以单步执行你的程序显示和GUI对象相关的值。
    经验将在最合适的地方设置断点。你在一个类或者程序里面可以设置多个断点。
    通常,你在调试代码的时候会禁止、激活、添加、删除断点。工具会答应你查看你所设置的所有断点的位置同时给你一次删除所有断点的选项。
    单步执行程序
    单步执行程序是最终解决那些棘手的调试问题的方法。它答应你追踪类里面的方法体的整个执行过程。注重,你不需要设置断点就可以停止一个GUI程序的执行。
    设置断点后在调试器里面开始执行程序,当碰到第一个断点后,你可以越过申明,进入方法体或类体,也可以继续运行直到下一个断点或程序结束。
    在调试程序的时候经常碰到的术语有:
    进入 执行当前行。假如当前行包含一个方法调用,执行被调用方法的第一行。假如类中的方法是用不带调试信息的选项编译的 (也就是没有使用 -g 选项)

posted @ 2013-05-13 11:42  gexiaomin  阅读(125)  评论(0编辑  收藏  举报