zoukankan      html  css  js  c++  java
  • 程序调试

    程序调试

        调试是程序开发过程中一个必不可少的阶段。程序初步完成后要经过调试,试验性地运行,设法确认程序无问题,或者找出程序中潜藏的错误。调试的基本出发点是设法发现程序中的错误,基本方法是选择一些数据实例,令程序用这些数据运行,考查运行过程和有关结果。如果在实例运行中发现错误,则应设法确定出错原因并予以排除。

      经过反复调试运行和纠正错误,就可能使程序中的错误变得更少。对小程序,到某个时候有可能认为程序中已经没有错误了。对于大程序,实际软件系统,人们通常不敢说这种话,只说:这个系统已经经过仔细调试,发现的错误大部分已经解决,现存的错误还有……。大软件实在太复杂,以至于可能无法完全把握它们,这是软件世界中一个客观情况。计算机领域的人们都知道一句名言:调试只能说明程序中有错误,不能说明其中没有错误。程序调试有其内在局限性。但即便如此,调试仍然是软件开发过程中必要的一环,需要认真对待。

      如果在程序调试中发现了错误,就要设法确定问题原因,确定程序中出错的位置。寻找出错位置的基本方法是对程序本身做进一步分析,另一个常用方法是检查程序的执行流程和运行中各变量的变化情况。为此可以在源程序适当位置插入输出语句,输出有关变量的值检查。这个方法的缺点是比较麻烦,而且对程序的运行过程无法控制。

      今天的开发环境都为程序调试和排错提供了强有力的支持。TURBO C 集成开发环境的功能很典型,其他系统的功能都与它类似。TURBO C提供的与调试有关的功能包括两方面:一是能按照源程序中的语句一步步地执行,或者要求它执行到某语句时停在那里;另一功能是能够在运行中直接观察指定变量(或表达式)的值。

    1)单步执行及控制执行,用于指定程序的执行方式。命令有三个,可以通过功能键发命令,也可以通过菜单选择:

    F7 单步执行。令程序执行一个语句,遇到函数调用时执行进入函数体。
    F8 F7类似,但执行不进入函数,把函数调用简单地看作一个语句。
    F4使程序连续执行,直到达到当前光标所在的语句,停在那里。

    2)断点(BreakPoint)设置。断点是源程序中标出的位置,程序执行达到断点时将自动停住。可以同时设置多个断点。

    Ctrl-F8断点设置与取消。在当时的光标位置设一个断点。如果光标当时放在已设置的断点上,则取消这个断点。

    在程序中设了断点以后,如果再要求程序连续运行(通过菜单命令或者功能键Ctrl-F9),程序将执行到所遇到的第一个断点并停在那里。此后再命令程序继续,它将执行到下一个断点位置。断点和单步执行等可以混合使用。

    3)设置监视(Watch)表达式。在调试运行时,屏幕下部的消息窗口自动变为监视窗口,用于显示被观察表达式(可以是简单变量)的值。这种表达式称为监视表达式。在程序的执行中止时,例如在单步执行中,或在连续执行遇到了断点时,在监视窗口中将显示被监视表达式当时的值。与监视表达式有关操作包括:

    Ctrl-F7增加一个监视表达式,系统弹出一个会话小窗口,要求输入表达式。可以输入变量名或任何表达式。
    F6转到监视窗口,或由监视窗口转回。

    在监视窗口状态下,可以用移光标键将亮条上下移动;还可以用Delete键删除亮条所在的监视表达式。

      此外TURBO C还提供了执行中断键Ctrl-Break。在程序执行中按这个组合键,可以使程序停止在当时的执行位置,以便进一步检查。利用开发系统的这个功能,我们可以使程序在执行中任何时刻停下来,停在任何地方,查看当时变量的情况;可以一步步执行,观察某些变量或表达式值的变化。通过这些观察,能帮助我们分析认识问题,找出错误的根源。

  • 相关阅读:
    PowerDesigner学习 ---- 系列文章
    PowerDesigner基础使用 ---- 入门学习
    PowerDesigner ---- 数据库设计(概念模型CDM和物理模型PDM)
    PowerDesigner V16.5 安装及汉化
    在树莓派是安装并配置NTP服务
    RESTful Web API 理解
    Linux或树莓派3——挂载U盘、移动硬盘并设置rwx权限
    开启树莓派自带的VNC功能
    c#代码获取web.config配置文件里面设置的 <compilation debug="true"节点
    WebService的web客户端同步、异步、多线程向服务端传入参数的数据交互方式
  • 原文地址:https://www.cnblogs.com/friedwm/p/1869349.html
Copyright © 2011-2022 走看看