如何调试JAVA程序(主要是步骤)

如何调试JAVA程序(主要是步骤),第1张

1在你觉得有错的地方设置断点2点击甲壳虫一样的按钮下面的子按钮,也是甲壳虫一样的,叫Debug3运行程序,当程序运行到刚才设置断点的位置就会停下来,并且那行代码底色会高亮显示。4接着你在如下界面你可以看到你想要的信息5在Variables里面可以查看所有变量的值,比如刚才设置的断点里面的strClassName的值就可以看到。 6下面按钮第一个是进入方法执行,比如你调用了其他方法,可以进入方法一步一步执行,如果点击第二个按钮,只会在本方法内一步一步执行,第三个按钮时你跳出此方法,继续执行调用这个方法的原方法。7下面这个按钮时直接执行完程序。8差不多就这些了,还有不明白可以继续QQ咨询我~

1、首先,进行打开一个需要进行调试的代码,进行再当前来进行编辑。

2、在当前的代码进行编辑的完成,进行点击 run 菜单。

3、进行点击了run之后,d出了下拉菜单选中为 debug 的选项。

4、这样就会d出了一个需要的运行的文件名称中,进行选中一个当前的运行名称。

5、文件名称选择完成之后,就会开始对当前的进行调试了。

6、或者进行点击输出窗口,进行点击debug的按钮。来进行调试。

单片机可以实现在线调试程序,通过软件设置断点,进行单步调试,这样可以看到单片机是如何一步步执行程序的,从而快速找到问题,解决问题。以Keil和IAR为例介绍一下单片机的在线调试。

1keil

的在线调试功能

以STM32单片机为例,所需要的软件为Keil MDK,仿真工具为J-link,当程序编写完成后,编译通过,通过J-link仿真工具连接电脑和单片机板子,一定要安装好J-link的驱动,在Debug界面选择J-Link,并正确设置Setting界面的下的器件型号,如下图所示。

设置好后,点击工具栏的Debug按钮,就进入在线调试模式了,这时候会出现调试工具栏,如下图所示。

在怀疑有问题的地方设置断点后,运行单步调试,单片机就可以一步步的执行了,在watch窗口可以选择查看单片机的GPIO等寄存器,实时了解各端口和变量的变化情况。

2IAR

的在线调试功能

以STM8单片机为例,以IAR for STM8为例,工具为ST-Link,正确安装好ST-Link的驱动,程序编译通过后,执行Debug and download按钮可以开启在线仿真模式,如下图所示。

在有问题的地方设置断点,执行全速运行后,会在断点处停下,可以执行单步调试功能进入函数,再一步步执行。

这样也可以很容易的找到程序bug。

3使用串口打印进行调试

如果单片机不支持在线仿真功能,可以通过串口打印的形式输出调试信息。首先要把串口打印程序调试通,在有问题的地方通过给变量设置不同的值然后打印,这样也可以很直观的判断程序的运行情况。所需要的工具为USB/TTL。

由于篇幅有限,无法详细描述,大家可以根据以上信息搜具体的教程。

以上就是这个问题的回答,感谢留言、评论、转发。

更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。

调试程序一般应经过以下几个步骤:

1先进行人工检查,即静态检查。在写好一个程序以后,不要匆匆忙忙上机,而应对纸面上的程序进行人工检查。这一步是十分重要的,它能发现程序设计人员由于疏忽而造成的多数错误。而这一步骤往往容易被人忽视。有人总希望把一切推给计算机系统去做,但这样就会多占用机器时间,作为一个程序人员应当养成严谨的科学作风,每一步都要严格把关,不把问题留给后面的程序。

为了更有效地进行人工检查,所编的程序应注意力求做到以下几点:应当采用结构化程序方法编程,以增加可读性;2尽可能多加注释,以帮助理解每段程序的作用;3在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。这样既易于阅读也便于调试,各函数之间除用参数传递数据这一渠道以外,数据间尽量少出现耦合关系,便于分别检查和处理。

2在人工检查无误后,才可以上机调试。通过上机发现错误称动态检查。在编译时给出语法错误的信息,可以根据提示的信息具体找出程序中出错之处并改正之。应当注意的是有时提示的出错并不是真正出错的行,如果在提示出错的行上找不到错误的话应当到上一行再找。有时提示出错的类型并非绝对准确,由于出错的情况繁多各种错误互有关联,因止要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。

如果系统提示的出错信息多,应当从上到下一一改正。有时显示出一大片出错信息往往使人感到问题严重,无从下手。其实可能只有一二个错误。例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息;有的是少了“}”或多了“}”有的是书写语句时忘记写“;”或是全角的“;”了,只要加上一个变量定义,或填加“};”就所有错误都消除了。

3在改正语法错误后,程序经过连接就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作分析。看它是否符合要求。有的初学者看到运行结果就认为没问题了,不作认真分析,这是危险的。

有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好一批“试验数据”,输入这些数据可以得出容易判断正确与否的结果。可以在计算的输出结果的程序地方加入一段输出到串口的程序,利用串口窗口可以方便看到结果的,比仿真的都好和直观。例如,if语句有两个分支,有可能在流程经过其中一个分支时结果正确,而经过其它一个分支时结果不对等。必须考虑周全。

事实上,当程序复杂时很难把所有的可能方案全部都试到,选择典型的情况作试验即可。

4 运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法:

1 将程序与流程图仔细对照,如果流程图是正确的话,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。

2 如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,往下检查。直到找到在哪一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就可能发现错误所在。

3 也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不要再编译了,也不再被执行了)。这种方法可以不必一一去printf函数语句,以提高效率。

4 如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题,如有则改正之,接着修改程序。

5 有的系统还提供debug(调试)工具,跟踪流程并给出相应信息,使用更为方便,如KEILC51里的调试运行就很好用的,可以在命令的窗口输入程序中需要的数据和开关量、中断、I/O口的电平等来方便完成程序的运行,使用时要先打开Options for Target'Target1'(工程菜单里的目标‘TARGET1'属性)-点DEBUG-选中左边use Simulator\load Application at sta\Go till main;按确定后退出到编辑画面,要先对源程序进行编译后没有错误才可以按主菜单上的调试按钮,进行调试的,F10为子程序运行式的单步、F11为单步调试;具体使用可以看本站提供的51单片机应用系统开发实例一书中的Dscope foe Windows一节。可以下载本站上中文版的KIELC51就直观了。

总之,程序调试是一项细致深入的工作,需要下功夫,动脑子,善于累积经验。在程序调试过程中往往反映出一个人的水平,经验和科学态度。希望读者能给以足够的重视。上机调试程序的目的决不 是为了“验证程序的正确”,而是“掌握调试的方法和技术”,不要一直依赖仿真器来解决,要学会自己找问题,这样慢慢自己就会写出错误较少的实用的程序,站长就没有仿真器的哦,靠KEILC51里的软件仿真就解决了。

1、调试模式

我们调试程序的时候,要在Debug模式下面进行,不可以在release(发布)模式下进行调试。

2、启动调试

在Debug模式下,我们选择“Debug菜单–开始调试”,或者直接点击“F5”按钮启动调试。这一步我们要注意的就是设置断点,需要调试的地方设置好断点,再启动调试。

3、附加进程

这也是一直调试方式,我现在一直用的调试程序方式。启动程序的时候,我们就使用菜单“调试(Debug)–附加进程(Attach the process)”

4、单步调试F10,进入过程F11

F10就是单步调试,设置好断点之后,就执行,程序在断点地方就会停止,然后按F10,程序就会一步一步执行;

F11就是进入过程,比如遇到函数的时候,按F11就会进入函数体,然后再按F10就单步执行

使用Release 模式编译后,release 的目录下包含 Hello1exe 可执行程序。如果我们需要发布这个程序,那么还需要 QT 的运行库,包括哪些呢?拿一台干净的机器一个个试,终于把这些 Qt 库给找出来,成功运行 QtCore4dll QtGui4dll mingwm10dll libgcc_s_dw2-1dll 其中要特别注意的是,这些文件应该从 Qt 安装目录下的 [QT安装目录]\qt\bin 子目录中获取,因为[QT安装目录]\bin 也有同样的文件,但是无效。这里仅限 Windows 系统,其他非 Windows 系统尚未研究。不过也碰到一个小问题, Hello1 程序中有这么一行代码:QStringgbk_msg=codec->toUnicode("你确认要退出HelloQt程序吗?

如果是LOOP等之类的循环是没有办法设置断点

的。

2如果你有源程序,可以在循环体内增加判断的条件,

然后在这个地方设置断点,待调试正确后再将这个

新增加的判断去掉,或者增减ecx的数值。

3如果调试别人生成的可执行文件,那就没有办法

了。

以上就是关于如何调试JAVA程序(主要是步骤)全部的内容,包括:如何调试JAVA程序(主要是步骤)、VC++6.0中如何用Debug进行程序调试、单片机程序怎么在电脑上调试用什么软件好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9353208.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存