精华内容
下载资源
问答
  • 2021-02-12 18:14:37

    文章导读

    【Java开发环境和运行环境都已部署完成,下一步就要进入编程环节的学习了。在学习之前呢,同学们有必要了解程序的完整开发流程,前面说过程序是用来解决现实世界问题的。那么,从问题到可运行的程序需要哪些方法和技术,需要遵循什么样的开发流程,这都是同学们要清楚和明白的,也是从编程小白到系统架构师的必经之路,而不仅仅是单纯的编码人员。本篇与同学们探讨程序的开发方法及如何编写第一个Java程序。通过本篇的学习,你将了解如何从问题的开始到程序编写的整个开发流程,尝试编写第一个Java程序,并能初步了解程序的调试方法。】

    1、Java程序的开发流程

    程序开发是从问题域入手,识别问题域中实体、实体属性、行为以及实体与实体之间的关系,将现实世界的实体及关系通过数据结构、算法映射到计算机世界,并利用编程语言控制计算机的行为及操作,协助人类解决现实中的问题。

    程序开发基本过程如下图示所示:

    图1 程序设计基本过程

    无论用什么语言编写程序,编写的无论是企业级程序还是计算两数和的最简单程序,程序开发过程都需要经历需求分析、程序设计、编写阶段、测试阶段、运行阶段五个基本过程。

    假设需要设计一个交通红绿灯自控程序,其程序开发过程可分为如下步骤:

    需求分析

    (1)识别问题域:在城市十字路口控制南北方向和东西方向的红绿灯自动切换;

    (2)识别问题域的实体:实体可以从问题域描述内容提取出来,问题域要求控制红绿灯的自动切换,其中南北方向有红、黄、绿三个灯,东西方向也有红、黄、绿三个灯,因此该问题域只有一个实体“灯”;

    (3)识别实体属性:灯的属性有颜色(红、黄、绿)、亮度(强光、弱光);

    (4)识别实体行为:关灯和开灯是灯的行为;

    (5)识别实体与实体间的关系:该问题域中,只有灯一个实体,不存在与其它实体的关系。但其自身实体之间存在关系,南北方向和东西方向的红绿灯同一时间只允许各有一个灯亮;且遵循南北方向红灯亮时,东西方向绿灯亮、红灯→黄灯→绿灯→黄灯→红灯、红灯与绿灯点亮时间间隔等规则。

    识别问题域(需求分析)完成后,需要形成需求分析文档。

    程序设计

    对识别的问题域实体建立对象模型,并建立实体关系模型。对象模型可以把已经识别的问题域映射到能够被编程语言识别和描述的对象、对象功能和对象行为域。

    映射工具就是面向对象建模语言,当前流行的有多种建模语言,其中被广泛使用的是UML建模语言,UML从问题域的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等九种图。这些图从不同的侧面对问题域进行描述。通过对象建模语言将问题域映射为对象、对象功能和对象行为域,也就是映射为系统(程序)。

    针对交通红绿灯自控程序问题域,UML类图(对象图)如下图所示:

    图2 交通灯自控程序类图

    UML模型完成后,需要形成设计文档。

    注意:UML模型同学们可以课外阅读,对该模型有一个初步了解。

    编码阶段

    UML模型设计完成后,基本可以参照UML模型或设计文档进入编码阶段。编码阶段主要包括代码编写、编译及单元测试。

    测试阶段

    程序完成后,需要经过有效测试,排除潜在的程序BUG后,才能对外发布。

    运行阶段

    虽然经过严格测试,程序运行过程中,依然会出现各种各样的问题需要维护,同时新的需求也要求程序不断地升级版本。

    2、Java编码阶段需要准备的工作

    前面谈到常用的Java开发工具有文本编辑器、Java集成开发工具等软件。如果开发者初学Java程序设计,应从最简单的文本编辑器入手。掌握Java编程的基础语法、基础类库的使用及设计思想后,再逐步接触Java开发集成环境和Java开发框架。

    Windows操作系统下用文本编辑器编写Java代码可以分为三步走,如下图所示:

    图3 编写Java代码过程图

    通过文本编辑器编写Java代码(源程序),在命令行窗口运行Java编译器编译Java代码,编译通过后输出class文件,运行Java程序,加载已编译完成的类文件。

    3、编写第一个Java程序

    1、打开Windows记事本,输入下面的内容,并保存文本文件到D盘Java目录,如果D盘没有Java目录,可以新建一个Java目录,并命名文件为“HelloWorld.java”。也可以将文件保存到其它目录。

    需要注意的是,如果将文件保存到其它目录,后面内容涉及到目录的,需要将目录切换到该文件保存的目录下。

    public class HelloWorld {

    public static void main(String args[])

    {

    System.out.println("HelloWorld");

    }

    }

    编写代码注意事项:

    ① 保存的文件名称和类名一定要一致。例如:类名是“HelloWorld”,保存的文件名称一定也是“HelloWorld”;

    ② Java对字母大小写敏感,大写字母一定要大写,小写字母一定要小写。例如:语句中的“System”不能写成“system”;

    ③ 每条Java语句必须以分号结束。例如:语句“System.out.println("HelloWorld")”后面必须加“;”,没有分号编译器会报错;

    ④ “{”和“}”必须成对;

    ⑤ “public”、“static”、“void”、“main”是Java保留的关键字,不能有任何改动;

    ⑥ “main”是Java程序的执行的入口点,不能改变“main”方法名称。

    2、进入Windows命令行窗口,将D盘Java目录设置为当前工作目录,具体步骤如下:

    在Windows命令行窗口输入“d:”命令,并按下回车键(Enter),当前工作目录被设置为D盘,继续输入“cd java”命令,并按下回车键(Enter),当前工作目录被设置为“d:/java”目录,如下图所示:

    如果Java代码被保存到其它目录,可以用同样方法将Java代码所在目录设置为当前工作目录,不同的是输入的盘符和“cd”命令后的目录不同;

    (3)在当前工作目录下输入“javac HelloWorld.java”命令,注意“javac”和“HelloWorld.java”之间有空格,并按下回车键(Enter),Javac是Java编译器程序,此命令是执行对“HelloWorld.java”的编译。如果代码没有错误,在当前目录下会生成“HelloWorld.classs”文件;如果编译过程中,Java程序给出提示,则需要按照提示修改Java代码文件,修改完成后再次执行编译命令,直至编译成功。

    (4)在当前工作目录下输入“java HelloWorld”命令,并按下回车键(Enter),屏幕显示“HelloWorld”语句。输入命令时,注意大小写以及“java”与“HelloWorld”之间的空格。

    至此,第一个Java程序编写完成并成功运行。

    4、 在命令行窗口进行Java程序调试

    初学者刚开始编写程序,编译时错误可能会比较多,这时就需要学会查看编译器给出的错误信息,根据编译器给出的错误信息修改相应代码,然后再次编译,发现问题再返回修改,如此往复,直至代码编译通过,往复编译修改代码的过程就是程序调试。

    初学者写的代码,被编译时出的错误比较多,主要是对编程语言的语法不熟悉、丢三拉四、关键字拼错、大小写没有区分、括号没有成对匹配等错误。编译器一般都会在命令行窗口对这些错误给出比较确切的描述,并能指出错误所在的位置,给修改代码带来了极大的方便。下面以前面编写的第一个Java程序“HelloWorld”为例,列举几个调试程序的实例。

    示例1:编译文件名拼写错误

    以前面的“HelloWorld.java”为例。在命令行窗口切换到当前工作目录D盘Java目录下,如果被编译的文件在其它目录存储,将当前工作目录切换到被编译文件所在的目录。

    编译“HelloWorld.java”文件,在命令行窗口输入“javac Helloworl.java”并执行命令(输入错误的文件名),编译器显示如下信息:

    编译器给出“找不到文件:Helloworl.java”出错信息,重新输入正确的文件名称就可以纠正该错误了。

    示例2:当前工作目录下没有被编译的文件

    将D盘Java目录下的HelloWorld.java文件暂时移除,在命令行窗口输入“javac HelloWorld.java”并执行命令,编译器显示如下信息:

    编译器同样给出“找不到文件:HelloWorld.java”出错信息,将“HelloWorld.java”文件恢复到D盘Java目录下,就可以纠正该错误。

    示例3:类声明的Java关键字拼写错误

    “HelloWorld.java”文件类声明“class”关键字被错误拼写为“claas”。在命令行窗口输入“javac HelloWorld.java”并执行命令,编译器显示如下信息:

    编译器给出了三个错误描述,其实都指向同一个错误。错误信息分为四个部分。错误信息构成描述见下图:

    图4 编译错误信息构成

    第一部分指出出错的Java文件名称;

    第二部分指出错误所在Java文件中的行号,“1”表示错误出现在Java文件中的第一行代码;

    第三部分指出错误原因描述,同学们可以根据此错误描述修改错误代码;

    第四部分指出具体的错误内容,可以更好地定位错误所在具体位置。

    第一个错误信息是“需要class,interface或enum”,错误信息表示的意思是类声明需要“class”、“interface”、“enum”关键字中的一个,从图中可以看出,编译器已经指出了具体错误位置所在,在第三行“claas”下面有一个向上的箭头指向该“claas”,可以明显看出,关键字“class”被错误拼写为“claas”,改正此错误,编译即可通过。

    第二和第三个错误都是由第一个错误引起的。

    示例4:类文件名称与类名称不一致

    “HelloWorld.java”文件名称与类名称不一致,将“HelloWorld.java”文件名称重新命名为“HelloWorld1.java”,文件重命名后,导致文件名称与类名称不一致。在命令行窗口输入“javac HelloWorld1.java”并执行命令,编译器显示如下信息:

    编译器给出“HelloWorld”应在“HelloWorld1.java”中声明,检查文件名称与类名称是否一致。

    示例5:类体的花括号没有匹配

    用记事本打开“HelloWorld.java”文件,去掉最后的花括号(类的匹配花括号),保存文件。

    在命令行窗口输入“javac HelloWorld.java”并执行命令,编译器显示如下信息:

    编译器给出语法分析时没有找到文件尾部错误信息,用记事本打开“HelloWorld.java”文件,定位到第5行,检查是否缺少与类匹配的“}”括号。

    示例6:Java类库名拼写错误

    用记事本打开“HelloWorld.java”文件,修改Java类库“System”为“system”,保存文件,退出记事本。

    在命令行窗口输入“javac HelloWorld.java”并执行命令,编译器显示如下信息:

    编译器给出程序包system不存在错误信息,用记事本打开“HelloWorld.java”文件,定位到代码第4行,检查Java类库“System”是否拼写错误,Java对字母大小写敏感,大写字母一定要大写,小写字母一定要小写。语句中的“System”不能写成“system”。

    示例7:字符串没有用""引起来

    Java的字符串必须用英文双引号""引起来,不能是中文双引号“”,也不能是中文单引号’’。用记事本打开“HelloWorld.java”文件,修改Java代码。

    System.out.println("HelloWorld");

    修改为:

    System.out.println("HelloWorld);

    然后保存文件,退出记事本。

    在命令行窗口输入“javac HelloWorld.java”并执行命令,编译器显示如下信息:

    编译器给出未结束的字符串文字错误信息,用记事本打开“HelloWorld.java”文件,定位到代码第4行,检查字符串是否在””之内。

    示例8:Java语句包含非法字符

    Java语句的“;”、“.”必须是英文字符,不能写成中文字符,如把“;”写成“;”,“.”写成“。”。用记事本打开“HelloWorld.java”文件,修改代码“System.out”为“System。out”,保存文件,退出记事本。

    在命令行窗口输入“javac HelloWorld.java”并执行命令,编译器显示如下信息:

    编译器给出非法字符的错误信息,用记事本打开“HelloWorld.java”文件,定位到代码第4行,检查是否存在把英文字符写成中文字符的情况。

    内容小结

    1、程序是用来解决现实世界所存在的问题,如何把问题转化为程序呢(解决问题的算法)?首先要识别问题,也就是需求分析,分析要解决问题的实质(算法核心),然后根据需求分析的结果,用映射工具(如UML)把分析问题的结果用模型描述出来(算法模型),最后用编程语言将模型(算法)转化为程序。

    2、编写Java程序可以利用记事本、集成开发工具软件。初学者建议用记事本编写Java程序,可以把精力集中在Java语言的基础语法上,等掌握了Java基础语法后,再使用集成开发工具。

    3、Java程序调试是辅助Java程序开发的一个重要技术,通过调试可以很快定位程序所出现的问题。在Windows命令行窗口编译和运行Java程序时,编译器一般都会在命令行窗口对这些错误给出比较确切的描述,并能指出错误所在的位置,给修改代码带来了极大的方便。

    思考与练习

    1、如何把现实世界的问题转化为程序?

    2、在Windows命令行窗口如何编译Java文件?

    3、在命令行窗口如何运行已编译好的Java程序?

    4、当javac编译器报出“找不到文件错误”时,程序可能出现了什么问题?

    更多相关内容
  • 如何调试程序调试程序基本步骤、方法详解

    万次阅读 多人点赞 2019-07-02 20:46:05
    1.为什么要进行程序调试及调试程序的目的? 程序调试是将编制的程序投入实际运行前,用手工或 编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。 测试时程序...
    1.为什么要进行程序调试及调试程序的目的?

    程序调试是将编制的程序投入实际运行前,用手工或 编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。

    测试时程序运行错误,无法根据提示的错误信息准确定位错误原因及错误位置。

    根据测试时所发现的错误信息和利用调试工具追踪的提示信息,两者相互结合综合判断错误发生原因和位置。找出错误原因具体的错误位置*,最终方便进行修正。

    测试本身也就属于程序调试的过程中的一部分。
    调试是验证程序的运行是否符合自己的设计。

    2.调试的原则

    ​ 一、用头脑去分析思考与错误征兆有关的提示信息。

    ​ 二、避开死胡同。同一个问题验证完成,办法行不通。这样需要换种思路处理问题。

    ​ 三、只把调试工具当做查找错误位置及错误原因的手段。利用调试工具,理清楚程序中数据流转逻辑,可以帮助思考,但不能代替思考,因为调试工具只是辅助性的定位错误的方法。而解决实际问题需要根据调试的提示信息,自己判断思考出正确的处理方式。

    ​ 四、避免用试探法,最多只能把它当做最后手段。

    ​ 五、修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修改错误本身。如果提出的修改不能解释与这个错误有关的全部线索,那就表明只修改了错误的一部分。要找到问题的根源。思考为什么会引起这样的错误,是否是设计上就出现不合理的问题。

    3.调试程序的思想

    首先要了解清楚系统功能的业务,业务了解清楚后,根据业务功能进行测试来使业务数据流转(业务产生数据,数据体现业务)。

    当错误发生时,首先应该想到并且知道这个问题的产生所依赖的业务数据流程。

    比如:当点击表单提后出现错误。这时应该思考点击提交按钮后应该发生了哪些些数据流转过程:点击提交按钮后,这个按钮触发的是提交form表单的action 指向的是控制层的哪个方法或js脚本中的某个function, 下来就是控制程方法接收数据后又调用的时service的哪个方法,继续直到到后台调用的是哪个数据库的sql再就是返回值返回页面数据的过程。

    在这个过程中业务数据跟着业务程序逻辑在流转。再根据页面展现的错误现象及报错提示信息,推测该错误可能会发生在这个业务数据流转过程中的哪个位置,从而确定我们调试的断点位置。调试,找出错误原因,提出解决方案,解决后再次测试。

    4.程序调试步骤方法

    ​ 1)根据错误提示信息及业务功能逻辑的推理等相关信息【与错误征兆有关的提示信息】找到有可能会导致错误发生的位置
    异常错误日志信息定位错误发生位置
    日志信息的输出位置一是控制台输出,这时最及时的一种方式,在程序运行时可以很容易就看到日志输出信息。二是输出日志信息到日志文件中,这种方式根据项目要求配置日志相关信息[日志输出级别、日志输出路径]
    这些日志信息分为以下几种
    【1】系统程序代码中自己标记的日志信息
    在这里插入图片描述
    错误日志
    在这里插入图片描述
    当程序执行发生错误时,在日志文件或控制台输出时就会输出到已标记的日志信息,根据输出的已标记信息通过工具搜索定位到具体的打印日志的方法。
    【2】 错误信息没有我们标记的日志,而是在程序执行中发生错误导致的异常错误信息提示如下:

    在这里插入图片描述

    1》2019-07-01-13-05 [http-nio-192.168.200.169-8443-exec-1] [org.thymeleaf.TemplateEngine] [ERROR] - [THYMELEAF][http-nio-192.168.200.169-8443-exec-1] Exception processing template "findFlpcList": An error happened during template parsing (template: "class path resource [templates/findFlpcList.html]")
    org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/findFlpcList.html]")
    2》Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "#strings.substring(flpcDTO.createTime,0,10)" (template: "findFlpcList" - line 27, col 25)
    3》Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "#strings.substring(flpcDTO.createTime,0,10)" (template: "findFlpcList" - line 27, col 25)
    4》Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 10
    
    这种在日志文件或控制台中输出的异常错误信息,我们看日志错误信息按照这种思路
    
    1》中表示了错误发生的位置,比如:
    An error happened during template parsing (template: "class path resource [templates/findFlpcList.html
    可以推测出发生错误的地方应该templates/findFlpcList.html文件中,原因是An error happened during template parsing模板解析时出错。在调试排查错误位置点时重点就可以在代码中的查找findFlpcList.html文件。
    		2》、3》、4》的 Caused by中就显示了错误造成的原因。比如:
    		Exception evaluating SpringEL expression: "#strings.substring(flpcDTO.createTime,0,10)" (template: "findFlpcList" - line 27, col 25)就显示了在模版findFlpcList 的27行 "#strings.substring(flpcDTO.createTime,0,10)"发生 SpringEL expression异常
    紧接着看下一句
    Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 10
    可以看出错误原因就是字符索引越界了,这样我们就可以推测可能为flpcDTO.createTime 取值有问题或者(0,10)截取不对。下来要做的就是 将flpcDTO.createTime 的值打印输出 查看具体值是什么,判断错误发生原因。这一步就是下面的调试。
    
    

    ​ 2.1)在IDE中进行启动debug调试模式,进行***标记断点***”“ 。注意:一般打断点的方式及位置是

    ​ 【1】在有可能发生错误的方法的第一行逻辑程序打程序断点。

    ​ 【2】方法中最有可能发生错误的那一行打程序断点。

    ​ 【3】在程序运行到断点位置暂停时,进行下一步调试,这时需要特别***注意观察***程序运行的每一步的数据是否为业务流程处理的正确数据。

    ​ 2.2)打印输出相关信息 ->system.out.println()

    ​ 【1】打印信息在方法中最有可能发生错误的那一行上一行或下一行,将程序执行的参数、返回结果值在控制台进行输出,检查输出的结果值是否为程序执行咱们想要的结果,进而判断错误发生点。

    ​ 【2】这种打印输出信息的方法也是在某些不支持debug的系统调试的一个重要方法。

    ​ 3)在打断点和标记打印输出后,现在开始进行debug模式调试。

    ​ 当程序运行到断点,这时程序在一个暂停状态,我们需要进行程序单步向下执行,观察每一步中的输入参数数据是否正确或调用方法的返回值数据是否正确,当程序运行到一个方法时我们可以继续单步向下执行不管方法内部的逻辑只关心返回值,也可以使用程序调试方法中的进入方法内部继续追踪程序(进入方法内部后继续单步执行或跳出方法内部),直到程序执行发生错误,判断是否为程序错误发生的实际位置

    ​ 另一种情况当程序运行起来后,业务处理发生错误,并没有进入我们的断点或打印输出语句,这时就是我们推测的程序发生的位置不对,需要根据错误信息和业务处理流程逻辑重新推测错误发生位置,重新再次进行第2步。

    ​ 4)当查找问题时注意将问题细化拆解,看看一个大问题中,程序正确执行到哪一步,精确定位错误点。

    5.1后台调试工具

    调试的主要方法,(1)单步走 (2)进入方法内部(3)跳出方法,不管在那个工具中应该都有这样的功能,只是这些功能的快捷键不同。下面介绍几种工具

    idea的debug调试功能

    1)向下单步执行 [step over F8] ,就是程序一句一句的执行。

    2)进入内部[step into F7],就是进入调用方法的内部,接下在单步执行,一句一句的检查程序的执行情况。

    1. 强制进入内部[force step into Alt+shifit+F7]

    4)跳出内部 [step out shift+F8] 就是跳出方法。
    idea中的调试按钮
    idea调试模式

    eclipse的debug调试功能

    1)进入内部[step into F5]

    1. 向下单步执行 [step over F6]

    3)跳出内部 [step return F7]
    eclipse中的调试按钮

    日志控制台的输出logger.error()、logger.info(),根据日志信息提示,寻找问题出错的位置及出错原因。常说一句话“看日志或控制台有没有报错输出。“
    自己指定的system.out.println() 的打印输出,这种方式是在自己根据预测的错误点的位置进行打印相关信息,进而验证和查看自己对错误原因及错误位置的定位。

    模拟浏览器发送请求的工具 有: Postman、curl

    5.2.前台浏览器调试工具方法

    和后端调试工具应具有的调试功能相似,

    在chrome,fireFox、ie、qq、360、浏览器中的调试快捷键通常都为 F12

    按下F12快捷键进入调试模式,浏览器的调试目标 针对 js 、html、css 样式。
    打印输出 console.log()、弹出信息方式alert()。

    js脚本调试
    js 脚本调试
    html及css调试
    在这里插入图片描述

    展开全文
  • uni-app的初次开启微信小程序调试

    千次阅读 2021-01-28 15:19:14
    开发uni-app项目过程中,如何开始微信小程序进行实时编译调试。首先根据官网做如下配置: 注册微信小程序地址:https://mp.weixin.qq.com/ 微信开发者文档地址:...

    uni-app初次使用微信小程序调试

    		在开发uni-app项目过程中,如何开始微信小程序进行实时编译调试。首先根据官网做如下配置:
    		
    		注册微信小程序地址:https://mp.weixin.qq.com/
    		微信开发者文档地址:https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/
    		uni-app官网地址:https://uniapp.dcloud.io/
    		注册之后登陆
    
    **1-打开HBuilder X 新建项目**
    

    在这里插入图片描述

    在这里插入图片描述

    		新建完成之后打开我们的login.vue页面且运行
    

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在微信小程序中使用

    在这里插入图片描述

     HBuilderX点击【工具】 --【设置】--【运行配置】,找到【微信web开发者工具】安装所在的文件夹。复制路径,填写到【小程序运行配置】-- 【微信开发者工具路径】
    

    在这里插入图片描述
    注意:如果是第一次使用,需要先配置小程序id的相关路径,才能运行成功。若是HBuilderX不能正常启动微信开发者工具,需要手动启动,将uni-app生成小程序的路径拷贝到微信开发者工具里面。在HBuilderliX里面开发,在微信开发者工具里面就可以看到实时的效果。在这里插入图片描述
    重新点击【运行】-- 【运行到小程序模拟器】-- “微信开发者工具 - [xxxx]”,如果成功就可以直接调试。
    如果不成功,那么看看你是否和我遇到一样的错误:在这里插入图片描述
    如果是一样的话,就跟我一起做如下设置。
    先打开微信开发者工具,进入编辑器页面后。点击【设置】 – 【安全】,开启【服务端口】,然后关闭设置窗口,关闭开发者工具。
    在这里插入图片描述

    在这里插入图片描述
    重新点击【运行】 – 【运行到小程序模拟器】-- “微信开发者工具 - [xxxx]”,编译uni-app项目。
    提示如下并弹出微信开发者工具证明成功啦。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Mysql调试存储过程最简单的方法

    千次阅读 2020-12-31 12:23:20
    以前同事告诉我用临时表插入变量数据来...具体方法:你的存储过程中加入如下语句:SELECT 变量1,变量2;然后用mysql自带的cmd程序进入mysql>下。call 你的存储过程名(输入参数1,@输出参数);(注:这里帮助下新同...

    以前同事告诉我用临时表插入变量数据来查看,但是这种方法过于麻烦,而且Mysql没有比较好的调试存储过程的工具。今天google了下发现可以用select + 变量名的方法来调试。。。真是让我汗颜啊。

    具体方法:

    在你的存储过程中加入如下语句:

    SELECT 变量1,变量2;

    然后用mysql自带的cmd程序进入mysql> 下。

    call 你的存储过程名(输入参数1,@输出参数);(注:这里帮助下新同学,如果你的存储过程有输出变量,那么在这里只需要加 @ 然后跟任意变量名即可);

    即可发现你的变量值被打印到了cmd下,简单吧?呵呵 希望能帮到诸位。

    =============================

    有如下一个存储过程

    CREATE PROCEDURE `p_next_id`(kind_name VARCHAR(30), i_length int,currentSeqNo VARCHAR(3),OUT o_result INT)

    BEGIN

    SET @a= NULL;

    SET @b= NULL;

    SELECT id INTO @a FROM t_seq WHERE number= currentSeqNo and length= i_length ;

    IF (@a is null ) THEN

    select min(id)

    展开全文
  • MSP430的RAM中调试程序的研究

    千次阅读 2016-12-25 19:07:07
    Cortex-M3RAM中调试的文章百度有很多,但是和MSP430RAM中调试程序有关的文章却没有多少,百度只有一两个和RAM及MSP430有关的,但却不是RAM调试,而是重定位中断向量表到RAM及拷贝FLASH程序到RAM运行,于是...
  • Qt——程序调试

    万次阅读 多人点赞 2018-01-31 11:37:48
     传统的调试方法是设置断点进行调试,设置好断点后,按下F5或者左下角的调试按钮开始调试,这时程序先进行构建再进入调试模式。其中界面上有些按钮,例如继续按钮、停止调试按钮、单步跳过按钮、单步进入按钮、单步...
  • 五、单片机硬件调试中常见的案例(杂记) 一、硬件调试的四个目标 1、元器件焊接正确(错焊、漏焊、虚焊);多练,能事半功倍; 2、电路的框架连接正否正确;(跳线,挑线); 3、各处的电压是否正确;(器件的...
  • C#如何使用断点操作调试程序

    千次阅读 2021-05-19 20:42:43
    常用的程序调试操作包括设置断点、开始、中断和停止程序的执行、单步执行程序以及使程序运行到指定的位置。下面将对这几种常用的程序调试操作进行详细地介绍。1.断点操作断点通知调试器,使应用程序某点上(暂停...
  • 程序中出现的错误,但又没有通过异常去捕获,以至于直接抛出,从能导致程序的崩溃,继而造成对应的功能未达到想要的效果,这就是我们经常说的 `程序出bug了`。测试工程师一般也会将软件缺陷叫做 bug,当然了这是一种...
  • 使用gdb调试程序完全教程

    万次阅读 多人点赞 2016-06-14 14:21:48
    程序调试过程主要有:单步执行,跳入函数,跳出函数,设置断点,设置观察点,查看变量。 本文将主要介绍linux下的强大调试工具是怎么完成这些工作的。之所以要调试程序,是因为程序的运行结果和预期结果不一致,...
  • Android程序调试方法介绍

    万次阅读 多人点赞 2019-02-20 19:47:14
    静态调试 适用于:通过打印变量的值来查看某一时刻值是否正确 Toast(Snackbar)打印法 一般的Android开发人员最爱的调试法,使用简便,仅需...方便是挺方便的,不过有一点要注意:Android 5.0后,如果把「消息通知...
  • 第一部分调试策略 第1章调试的过程  虽然可能存在无数种错误,与此对应,潜在的也存在无数种调试策略,...像Elisabeth Kuble-Ross她的书《On Death and Dying》提到的悲哀五步曲那样,低效率调试过程的五步曲
  • 2.熟悉PC机上编辑、汇编、连接、调试和运行汇编语言程序过程。 二.实验内容 一个汇编语言程序从写出到最终执行的简要过程如下: 1) 编辑 可以用任意的文本编辑器来编辑源程序,只要最终将其存储为纯文本文件...
  • VS下如何调试程序

    万次阅读 多人点赞 2018-02-25 15:20:58
    程序崩溃的原因分类函数栈溢出 一个变量未初化、未赋值,就读取它的值。 ( 这属于逻辑问题,...(2)野指针 指针未赋值free/delete释放了的对象不恰当的指针强制转换1 导言软件开发周期,测试和修正缺陷(...
  • 程序云函数本地调试

    千次阅读 2019-09-28 13:13:08
    开发小程序过程中一开始是直接发布到云端调试的,但因为输出信息太少...微信小程序官方文档关于云函数本地调试的介绍还不够详细,摸索过程中走了些岔路,记录下: 先贴出来小程序官方文档关于云函数本地调试的说明: ...
  • 首先,要配置SSH连接,过程如下所示。 配置好SSH连接以后,测试一下是否可以连接,如果是第一次连接,会有是否连接的确认提示。 如果一切正常会弹出连接成功的提示。 2 配置 Remote Host 如下图所示, + 处点击...
  • LabVIEWVI的运行和调试

    千次阅读 2021-03-18 19:54:08
    LabVIEW语言的一大特点就是数据流驱动,程序中每一个节点(包括函数、子VI、各种结构等)只有获得其全部输入数据后才能够被执行,而且只有当其功能完全时节点的输出才是有效的。 通过数据线连接各个节点,从而控制...
  • 1. import pdb import pdb 2. 运行的代码前加入 pdb.set_trace() 3. 运行单元格 然后弹出如下窗口: 4. 先教所有指令的爸爸:h/help ...英文自个儿琢磨吧,下面是一些调试过程中常用的指令 指...
  • 解决Keil与Proteus无法联机调试问题和详细的联机调试过程   自己学习过程遇到的问题,记录一下。   打开Keil 调试,居然发现没有 Proteus VSM Monitor-C51 Driver,这就有点不好搞了,不过不要紧,可以自己...
  • 2.项目插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量 4.对话框添加控件 5.添加串口事件消息处理函数OnComm() 6.打开和设置串口参数 7.发送数据     众多网友的支持下...
  • 程序开发工具调试

    万次阅读 2018-08-17 22:44:51
    程序开发过程中调试是让程序跑起来的关键。 第一步:点击调试器 第二步:点击sources 第三步:目录找到需要调试的js文件,打开图文件,注意不是后缀为js的文件,而是js?[sm]的文件 第四步: ...
  • 驱动程序调试常用方法

    千次阅读 2017-07-09 11:39:11
    驱动程序开发的一个重大难点就是不易调试。本文目的就是介绍驱动开发常用的几种直接和间接的调试手段,它们是: 利用printk 查看OOP消息 利用strace 利用内核内置的hacking选项 利用ioctl方法 利用/proc 文件...
  • QEMU+GDB调试linux内核全过程

    千次阅读 2019-03-04 21:49:14
    之前因为应用层调试代码比较得心应手,导致自己的思路一直限制应用层的调试逻辑之,使我吃尽了苦头,苦于少了一套工具来进行内核源码的调试,这样就限制了代码开发的进度。现在好了有了一套得心应手的工具,...
  • 这里可以使用PyCharm调试器来查看代码发生了什么。要开始调试,您必须先设置一些断点。要创建断点,只需单击左侧gutter: 接下来,单击左侧gutter的播放图标,main旁边,然后选择Debug 'Car'。PyCharm启动...
  • 程序调试的一般思路

    千次阅读 2016-02-21 21:38:14
    本人在调试过程中总结了几点调试程序的一般方法,写出来和大家分享,能力有限,欢迎各位大神批评指正! 1.单步调试 从问题程序的起点开始,单步执行程序观察变量的变化过程,是最基本的程序调试方法。这种方法适合...
  • Dev C++调试程序方法详解

    千次阅读 2021-12-04 18:13:28
    所谓调试程序,就是控制编译器一行一行地执行代码,过程中可以清楚看到每个变量值的变化情况、函数的调用过程等,进而发现程序中隐藏的错误或者低效的代码。 作为一款免费、开源的 C/C++ IDE,Dev C++ 内嵌 GCC ...
  • 微信小程序开发过程中遇到的问题

    万次阅读 2016-12-05 13:31:05
    微信小程序发布到现在有段时间了,公司内部正在做一个小程序的项目,做的过程中踩到了不少问题,这里说一下遇到的问题和解决方案,希望能帮到正在做的人,也希望又正好的解决方案的人可以给我提供意见和建议,谢谢!...
  • vscode怎样debug调试go程序

    千次阅读 2019-06-18 19:12:00
    随着互联网时代的飞速发展,我们编码使用的开发利器也不断更新换代,古话说工欲善其事必先利其器,对于Java开发者而言,eclipse和idea这两款神器各有千秋,因自己的爱好可以选取不同的IDE,但是对于Go语言程序的...
  • gdb调试程序时跳进函数和跳出函数

    万次阅读 多人点赞 2019-11-01 13:39:27
    说实话平时Windows平台上开发,gdb调试用的并不是很多,但是一些linux平台才会出现的BUG,或者linux运行时宕机产生了core文件,这些还是需要使用gdb调试的,之前的文章《linux环境下服务器程序的查看与gdb调试...
  • nodejs的调试debug

    千次阅读 2021-01-27 21:13:16
    对于开发者来说,开发应用程序过程中,往往为了开发方便和解决bug需要借助于编程语言的调试功能。一般来说我们需要借助于强大IDE的调试功能来完成这项工作。nodejs也不例外。 今天我们来详细介绍一下如何调试...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 338,921
精华内容 135,568
关键字:

在程序调试过程中注意什么