1.5 程序调试

2024-10-01

1.5 程序调试

1️⃣程序调试的作用

在程序开发的征途中,程序调试无疑是每位开发者不可或缺的技能。火山软件开发平台深知这一点,因此在设计时就融入了强大的调试功能。当用户轻触“开始调试”按钮,平台会自动对代码文档进行细致的语法检查,任何潜在的语法错误都将被迅速捕获,并在界面下方的输出窗口中清晰呈现,指引用户快速定位并修正问题。

然而,值得注意的是,即便代码通过了语法检查,也可能在运行时遭遇意想不到的错误,这些错误可能源于逻辑上的疏漏或是资源管理的失误,严重时甚至会导致程序崩溃,极大地影响用户体验。

为了更高效地验证火山项目的运行状态,传统的做法是在方法调用的起止位置插入大量的状态输出代码(各子平台输出代码语法见下表一),虽然这种方法在一定程度上能辅助定位问题,但它不仅繁琐,还容易使代码变得杂乱无章,降低代码的可读性和可维护性。

表一:各子平台程序调试输出语法格式
子平台名称程序调试输出语法
安卓子平台调试输出("要输出的内容")
服务器子平台换行输出("要输出的内容")
视窗子平台调试输出("要输出的内容")

2️⃣程序调试功能介绍

幸运的是,火山软件开发平台个人版内置了先进的调试器,它提供了一种更为优雅和高效的调试方式,见图一及表二介绍。通过这个调试器,开发者可以轻松设置断点,实现代码的单步执行。这样,当程序执行到特定行时,会自动暂停,让开发者有机会仔细观察此时程序的状态,包括变量的值、调用栈等信息。一旦发现程序在某处行为异常,即可立即定位问题所在,无需再依赖大量的打印语句来“摸索”问题。

图一:程序调试快捷按钮
表二:程序调试快捷按钮功能介绍
按钮名称作用快捷键
图一左起第1个按钮开始调试此快捷键用于开始调试程序,并直接跳转到第一个断点处(如果有设置断点的话)。如果没有断点,程序将一直运行到结束。F5
图一左起第2个按钮停止调试此快捷键用于终止当前正在调试的程序。CTRL+F5
图一左起第3个按钮查看变量在调试过程中,此快捷键允许你快速查看变量或表达式的值,并可将此值入加监视表中动态观查。SHIFT+F9
图一左起第4个按钮开关断点在光标所处代码点击F9键或在代码行号上用鼠标单击,可以在当前行设置一个断点。再次点击F9将取消该断点。断点用于暂停程序的执行,以便在特定位置观察程序的状态。F9
图一左起第5个按钮单步进入逐语句调试。与F8不同,SHIFT+F8会进入方法内部进行调试,执行当前语句,并停留在下一条语句上。这对于深入了解方法内部逻辑非常有用。SHIFT+F8
图一左起第6个按钮单步逐过程调试。此快捷键用于执行下一条语句或跳过当前方法(如果当前语句是一个方法调用)。它不会进入方法内部进行调试。F8
图一左起第7个按钮跟踪返回在上级方法调用现行方法的语句后中断CTRL+SHIFT+F8
图一左起第8个按钮执行到光标处运行程序在当前光标所处程序行CTRL+F8

因此,掌握并熟练运用火山软件开发平台内置的调试器,将是每位开发者提升开发效率、保障软件质量的重要法宝。

3️⃣程序调试案例

  1. 案例代码介绍:

以视窗子平台程序调试为例,下图显示视窗界面仅有一个“按钮1”组件,从代码中可以看出:当"按钮1"被单击后执行调试输出 ("我是第一句输出内容")计算结果文本1 = 到文本 (方法A ())调试输出 (计算结果文本1)共三行代码。


图二:案例代码


  1. 设置断点:点击代码行序号左侧区域可设置断点,如图三第15行,当设置断点后会有红点显示。



图三:设置断点案例


  1. 开始调试:按F5键即可开始调试运行代码程序,当视窗界面弹出后,点击“按钮1”程序显示即将调试第15行代码,并有黄色向右箭头提示,见图四。


图四:断点调试


  1. 单步调试:按F8键即可开始单步调试。

  2. 查看调用栈信息:点击火山界面下方输出窗口下边缘的调用栈标签,即可查看程序调用栈信息。


图五:查看调用栈信息

  1. 查看变量:按SHIFT+F9键即可查看所处调试行的变量状态,从图六中可以得知变量计算结果文本1的值为空初始值"",此时可选择将该变量加入监视表。


图六:查看变量信息

  1. 查看监视表:从图七中可以得知变量计算结果文本1的值为空初始值"".


图七:查看监视表信息

  1. 查看调试结果:当再次按F8键单步调试,程序崩溃,输出子窗口中的调试标签项中显示“调试已停止”,从而得知代码单步调试到第16行代码语句时程序出现崩溃。崩溃的原因为方法A()中3除以0为非法语句,因为数学计算中除数不能为0,因此程序崩溃并退出。


图八:查看调试结果

3️⃣本文结语

  1. 在庞大的项目代码中,成百上千行的逻辑交织使得问题定位如同大海捞针。幸运的是,通过高效的调试功能,我们能够迅速锁定引发程序崩溃的“元凶”代码行,直接进行修改,从而极大地提升了软件开发与调试的效率。这一过程不仅缩短了问题修复的时间,还促进了代码质量的持续优化。

  2. 此外,对于初学者而言,面对如图二所示的复杂案例代码可能会感到困惑。这是学习过程中的自然现象,不必过分担忧。重要的是先对程序调试建立一个基本的认知框架,不必急于深究每个细节。随着后续课程的深入,当掌握了更多知识与技能后,再回头审视本节内容,你会发现曾经的不解之处已变得豁然开朗。因此,保持学习的连贯性和耐心,未来的你将能够更轻松地驾驭这些复杂的调试任务。


阅读19
分享
写评论...