当前位置:文档之家› Java Web程序的调试与排错

Java Web程序的调试与排错

Java Web程序的调试与排错
Java Web程序的调试与排错

用MyEclipse学习java Web时Web程序的调试与排错

一、错误现象

排错方法:检查Tomcat服务能否正确运行

排除错误:

启动Tomcat服务

如果控制台上显示Tomcat服务已启动,观察端口号是否与预期端口号一致,按照实际端口号重新运行(查看端口号:找到apache-tomcat的安装文件夹进入,再进conf文件夹找到server.xml文件用记事本打开找到如下图所示画线上方80就是端口号,用浏览器打开也可以

二、错误现象:HTTP Status404-/news/index.html

排错方法:检查Web应用是否正确部署

尚未部署

排除错误:部署Web应用

三.错误现象:HTTP Status404-/WebRoot/index.html

排错方法:检查URL

http://localhost:8080/news/index.html

排除错误:使用正确的URL

四、错误现象:HTTP Status404-/news/WEB-INF/index.html

排错方法:检查文件的存放位置

META-INF,WEB-INF文件夹下的内容无法对外发布

排除错误:把index.html文件拖至WebRoot文件夹下

五、若以上问题都不存在且有如下提示

HTTP Status404-/news/index.jsp

type Status report

message/news/index.jsp

description The requested resource(/news/index.jsp)is not available.

这就可能是映射的路径存在问题了

应该这样解决,在MyEclipse中部署news时(如下图)点击Browse就会出现一个文件夹。在浏览是把地址中的news改为文件夹的名字new就行了。

目前我只遇到这么多的问题

C程序调试步骤to初学者

调试程序一般应经过以下几个步骤: 1、先进行人工检查,即静态检查。 在写好一个程序以后,不要匆匆忙忙上机,而应对纸面上的程序进行人工检查。这一步是十分重要的,它能发现程序设计人员由于疏忽而造成的多数错误。而这一步骤往往容易被人忽视。有人总希望把一切推给计算机系统去做,但这样就会多占用机器时间,作为一个程序人员应当养成严谨的科学作风,每一步都要严格把关,不把问题留给后面的程序。 为了更有效地进行人工检查,所编的程序应注意力求做到以下几点: (1)应当采用结构化程序方法编程,以增加可读性;(2)尽可能多加注释,以帮助理解每段程序的作用;(3)在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。这样既易于阅读也便于调试,各函数之间除用参数传递数据这一渠道以外,数据间尽量少出现耦合关系,便于分别检查和处理。 2、在人工检查无误后,才可以上机调试。通过上机发现错误称动态检查。在编译时给出语法错误的信息,可以根据提示的信息具体找出程序中出错之处并改正之。 应当注意的是有时提示的出错并不是真正出错的行,如果在提示出错的行上找不到错误的话应当到上一行再找。有时提示出错的类型并非绝对准确,由于出错的情况繁多各种错误互有关联,因止要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。如果系统提示的出错信息多,应当从上到下一一改正。有时显示出一大片出错信息往往使人感到问题严重,无从下手。其实可能只有一二个错误。例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息;有的是少了“}”或多了“}”有的是书写语句时忘记写“;”或是全角的“;”了,只要加上一个变量定义,或填加“};”就所有错误都消除了。 3、在改正语法错误后,程序经过连接就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作分析,看它是否符合要求。 有的初学者看到运行结果就认为没问题了,不作认真分析,这是危险的。 有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好一批“试验数据”,输入这些数据可以得出容易判断正确与否的结果。可以在计算的输出结果的程序地方加入一段输出到屏幕窗口的程序,利用屏幕窗口可以方便看到结果的,很直观。例如,if语句有两个分支,有可能在流程经过其中一个分支时结果正确,而经过其它一个分支时结果不对等。必须考虑周全。 事实上,当程序复杂时很难把所有的可能方案全部都试到,选择典型的情况作试验即可。 4、运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法: (1)将程序与流程图仔细对照,如果流程图是正确的话,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。 (2)如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf 函数语句,输出有关变量的值,往下检查。直到找到在哪一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就可能发现错误所在。 (3)也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不要再编译了,也不再被执行了)。这种方法可以不必一一去printf函数语句,以提高效率。 5、如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题,如有则改正

JAVAWEB期末复习题

第1章WEB开发环境 (1)下列关于WEB开发说法正确的是。 ABCD A)Web是图形化的和易于导航的 B)Web与平台无关 C)Web是分布式的 D)Web 是动态的 (2)下列关于Tomcat说法正确的是。 ABCD A) Tomcat是一种编程语言 B) Tomcat是一种开发工具 C) Tomcat是一种编程思想 D) Tomcat是一种开编程规范 (3)下列关于Tomcat个目录说法错误的是。 E E) work目录——包含web项目示例,当发布web应用时,默认情况下把web 文件夹放于此目录下 (4)下列关于HTTP协议说法正确的是。 ABCDE A) HTTP是一种请求/响应式的协议 B) HTTP请求消息中Accept表示浏览器可接受的MIME类型 C) HTTP请求消息中Accept-Encoding表示浏览器能够进行解码的数据编码方式 D) HTTP请求消息中Accept-Language表示浏览器所希望的语言种类 E) HTTP请求消息中Host表示初始URL中的主机和端口。 (5)下列对于JSP说法中正确的是。ABCDE A) JSP是Sun公司推出的新一代站点开发语言 B) JSP完全解决了目前ASP、PHP的一个通病——脚本级执行 C) JSP将内容的生成和显示进行分离 D) JSP强调可重用的组件 E) JSP采用标识简化页面开发 第2章JSP编译指令 (1)下列关于JSP编译指令说法错误的是。 C C)编译指令向客户端产生任何输出 (2)下面关于page指令说法中错误的是。 B B)一个JSP页面只能包含一个page指令 (3)下面关于page指令的属性说法错误的是。 DE D)session属性制定此页面是否参与HTTP会话。默认值false E)errorpage属性指示当前页面是否为其他页的errorpage目标 (4)下列说法中正确的是。 ABDE A)include指令通知容器将当前的JSP页面中内嵌的、在指定位置上的资源内容包含 B)include指令中file属性指定要包含的文件名 D)Taglib指令允许页面使用者自定义标签 E)你必须在使用自定义标签之前使用<% @ taglib %>指令 (5)下列说法中错误的是。 B B)<%-- This comment will not be visible in the page source --%>会在客户端的HTML源代码中产生和上面一样的数据

数控车床基本操作简单程序调试

数控车床的基本操作与简单程序调试 一、实训目的 < 1 >掌握数控车削加工基本编程指令及其应用 < 2 >熟悉了解数控车床的操作面板和控制软件; < 3 >掌握数控车床的基本操作方法和步骤; < 4 >进一步了解数控车床的结构组成、加工控制原理; < 5 >熟练掌握精车程序的输入调 二、预习要求 认真阅读数控车床组成、位置调整和坐标系设定及基本编程指令与调试的章节内容。 三、实训理论基础 1.基本编程指令功能介绍 1 ). G 功能 ( 格式: G 2 G 后可跟 2 位数 ) 常用 G 功能指令 (1) 、表内 00 组为非模态指令,只在本程序段内有效。其它组为模态指令,一次指定后持续有效,直到被本组其它代码所取代。 (2) 、标有 * 的 G 代码为数控系统通电启动后的默认状态。

2 ). M 功能 ( 格式: M2 M 后可跟 2 位数 ) 车削中常用的 M 功能指令有: M00-- 进给暂停 M01-- 条件暂停 M02-- 程序结束 M03-- 主轴正转 M04-- 主轴反转 M05-- 主轴停转 M98-- 子程序调用 M99-- 子程序返回。 M08-- 开切削液 M09-- 关切削液 M30-- 程序结束并返回到开始处 3 ). T 功能 ( 格式: T2 或 T 4 ) 有的机床 T 后只允许跟 2 位数字,即只表示刀具号,刀具补偿则由其它指令。 有的机床 T 后则允许跟 4 位数字,前 2 位表示刀具号,后 2 位表示刀具补偿号。如: T0211 表示用第二把刀具,其刀具偏置及补偿量等数据在第 11 号地址中。 4 ). S 功能 ( 格式: S4 S 后可跟 4 位数 ) 用于控制带动工件旋转的主轴的转速。实际加工时,还受到机床面板上的主轴速度修调倍率开关的影响。按公式: N=1000Vc / p D 可根据某材料查得切削速度 Vc ,然后即可求得 N. 例如:若要求车直径为 60mm 的外圆时切削速度控制到 48mm/min ,则换算得: N=250 rpm ( 转 / 分钟 ) 则在程序中指令 S250; 5 ).车床的编程方式 ( 1 ).绝对编程方式和增量编程方式。 图 2-1 编程方式示例 绝对编程是指程序段中的坐标点值均是相对于坐标原点来计量的,常用 G90 来指定。增量( 相对 ) 编程是指程序段中的坐标点值均是相对于起点来计量的。常用 G91 来指定。如对图 2-1 所示的直线段 AB 编程 绝对编程: G90 G01 X100.0 Z50.0; 增量编程: G91 G01 X60.0 Z-100.0;

JavaWeb程序设计 习题参考答案(第7章)

第七章监听和过滤 1、调用ServletContext的getAttribute()方法时,会触发哪个方法调用?(假设有关联的 监听器) A、ServletContextAttributerListener的attributeAdded()方法 B、ServletContextAttributeListener的attributeRemove()方法 C、ServletContextAttributerListener的attributeReplace() D、不会调用任何监听方法 参考答案:D 2、调用HttpSession的removeAttribute()方法时,会触发哪个方法调用?(假设有关联的监听器) A、HttpSessionListener的attributeRemove()方法 B、HttpSessionActivateionListener的attributeRemove()方法 C、HttpSessionBindingListener的attributeRemove() D、HttpSessionAttributerListener的attributeRemove 参考答案:D 3、调用HttpServletRequest的setAttribute()方法时,会触发哪个方法调用?(假设有关联的监听器) A、ServletRequestAttributeListener的attributeAdded()方法 B、ServletRequestAttributeListene的attributeReplaced()方法 C、ServletRequestAttributeListene的attributeRemove()方法 D、ServletRequestAttributeListene的attributeSetted()方法 参考答案:A 4、在web.xml中使用什么元素配置监听器 A、 B、 C、 D、 参考答案:B 5、下述代码定义了两个过滤器

实验一-Keil软件的使用及简单程序的调试方法

实验一Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下:

几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示

单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。 (3)将文件添加到工程中 单击“T arget 1”前的“+”号则展开后变成“-”号,并右键单击“Source Group 1”在弹出的下拉菜单中执行“Add Files to Group ‘Source Group 1’”命令并弹出对话框在该对话框中的“文件类型”下拉列表中选择“Asm source file”后找到要添加的文件名并选中,单击“Add”即可。

JAVA WEB程序设计第4章

《Java Web程序设计》课程第4章章节检测 一、选择题:(每题4分,共40分) 1、假设myObj是一个对象的引用,ml()是该对象上一个合法的方法。下面的JSP结构哪个是合法的?(B) A.<%myObj.ml()%> B.<%=myObj.ml()%> C.<%myObj.ml();%> D.<%=myObj.ml();%> 2、说明下面代码哪些是合法的JSP结构?(BC) A.<%=myObj.ml();%> B.<%int x=4,y=5;%> C.<%!Int getI(int i){return i;}%> D.<%myObj.ml();%> 3、下面哪个page指令是合法的?(A) A.<%@page pageEncoding="utf-8"%> B.<%!page pageEncoding="utf-8"%> C.<%page pageEncoding="utf-8"%> D.<%@Page pageEncoding="utf-8"%> 4、下面哪个page指令是合法的?(B) A.<%@page import="java.util.*java.text.*"%> B.<%@page import="java.util.*,java.text.*"%> C.<%@page import="java.util.*","java.text.*"%> D.<%@page buffer="true"%> 5、下面哪些是合法的JSP隐含变量?(CD) A.stream B.context C.exception D.application 6、下面关于JSP生命周期方法,哪个是正确的?(A) A.只有jspInit()可以被覆盖 B.只有jspDestroy()可以被覆盖 C.jspInit()和jspDestroy()都可以被覆盖 D.jspInit()、_jspService()和jspDestroy()都可以被覆盖 7、下面哪个JSP标签可以再请求时把另一个JSP页面的结果包含到当前页面中?(B) A.<%@page import%> B. C. D.<%@include%> 8、在一个JSP页面中要把请求转发到view.jsp页面,下面哪个是正确的?(B) A. B. C. D. 9、下面哪个说法是正确的?(A) A.<%@include file="right.jsp?name=hacker"%>语法结构是正确的 B.<%@include file="<%=str%>"%>语句是合法的 C.<%@include file="right.jsp"%>属于动态包含 D.以上都不正确 10、对于,下面哪个说法是正确的?(A) https://www.doczj.com/doc/8a10394509.html,值必须与中的id值一致 https://www.doczj.com/doc/8a10394509.html,值必须与中的name值一致 C.property值必须与类UserInfo中的属性username一致 D.property值不必与类UserInfo中的属性username一致

PLC程序的调试方法及步骤(精)

PLC程序的调试方法及步骤 PLC程序的调试可以分为模拟调试和现场调试两个调试过程,在此之前首先对PLC外部接线作仔细检查,这一个环节很重要。外部接线一定要准确无误。也可以用事先编写好的试验程序对外部接线做扫描通电检查来查找接线故障。不过,为了安全考虑,最好将主电路断开。当确认接线无误后再连接主电路,将模拟调试好的程序送入用户存储器进行调试,直到各部分的功能都正常,并能协调一致地完成整体的控制功能为止。 1.程序的模拟调试 将设计好的程序写入PLC后,首先逐条仔细检查,并改正写入时出现的错误。用户程序一般先在实验室模拟调试,实际的输入信号可以用钮子开关和按钮来模拟,各输出量的通/断状态用PLC上有关的发光二极管来显示,一般不用接PLC实际的负载(如接触器、电磁阀等)。可以根据功能表图,在适当的时候用开关或按钮来模拟实际的反馈信号,如限位开关触点的接通和断开。对于顺序控制程序,调试程序的主要任务是检查程序的运行是否符合功能表图的规定,即在某一转换条件实现时,是否发生步的活动状态的正确变化,即该转换所有的前级步是否变为不活动步,所有的后续步是否变为活动步,以及各步被驱动的负载是否发生相应的变化。 在调试时应充分考虑各种可能的情况,对系统各种不同的工作方式、有选择序列的功能表图中的每一条支路、各种可能的进展路线,都应逐一检查,不能遗漏。发现问题后应及时修改梯形图和PLC中的程序,直到在各种可能的情况下输入量与输出量之间的关系完全符合要求。 如果程序中某些定时器或计数器的设定值过大,为了缩短调试时间,可以在调试时将它们减小,模拟测试结束后再写入它们的实际设定值。 在设计和模拟调试程序的同时,可以设计、制作控制台或控制柜,PLC之外的其他硬件的安装、接线工作也可以同时进行。 2.程序的现场调试 完成上述的工作后,将PLC安装在控制现场进行联机总调试,在调试过程中将暴露出系统中可能存在的传感器、执行器和硬接线等方面的问题,以及PLC的外部接线图和梯形图程序设计中的问题,应对出现的问题及时加以解决。如果调试达不到指标要求,则对相应硬件和软件部分作适当调整,通常只

JAVA WEB程序设计报告

南京晓庄学院《JAVA WEB程序设计》 课程报告 题目: 《学生成绩管理系统》 姓名: 戴佳伟 学号: 班级: 14软件工程3班 完成时间 成绩: 数学与信息技术学院 2016年5月

目录 1.系统需求分析 (3) 2.相关技术与原理介绍 (4) 3.系统分析与设计 (5) 系统功能分析 (5) 系统结构分析 (7) 数据库设计 (9) 4.系统实现 (11) 教师信息管理模块实现 (11) 成绩信息管理模块实现 (13) 5.总结与体会 (16) 工作总结 (16) 改进设想 (1)

1.系统需求分析 本系统模拟学校对日常教务信息管理过程,开发学生信息管理系统。该系统可实现对教务资源中的学生信息、教师信息、课表信息、课程信息四个模块进行查询及处理操作。系统面向的用户分为:管理员、教师、学生。根据访问角色的不同,在系统中应体现出对教务资源的访问的权限的不同,其中管理员权限最大,拥有增、删、改、查的权限,而教师和学生角色仅拥有查及限制性的增、改权限,因此在这里需要对系统进行需求分析。 系统功能模块分为六大模块,它们包括: 1.登录模块 该模块实现用户登录、密码修改功能。用户可选择管理员、教师或学生身份进行登录,并可修改登录密码。 2.学生信息管理 该模块实现学生信息查询、学生信息添加、学生信息修改、学生信息删除功能。 3.教师信息管理 该模块实现教师信息查询、教师信息添加、教师信息修改、教师信息删除。 4.课程信息管理 该模块实现课程信息查询、课程信息添加、课程信息修改、课程信息删除。 5.选课信息管理 该模块实现学生选课查询、学生选课添加、学生选课删除、学生选课修改。 6.成绩信息管理 该模块实现学生成绩查询、学生成绩修改、学生成绩录入、学生成绩删除。

Java-Web程序设计题库

Java Web程序设计题库 一、选择题 1、以下文件名后缀中,只有( C )不是静态网页的后缀。 A、.html B、.htm C .JSP D、.shtml 2、以下文件名后缀中,只有( B )不是动态网页的后缀。 A、.jsp B、.html C、.aspx D、php 3、在page指令中,( C )属性是可以在页面中重复的属性。 A、language B、buffer C、import D、autoflush 4、JSP的结构由( B )组成(多选)。 A、指令 B、注释 C、脚本元素 D、操作 5、以下选项中,那一项不是JSP指令( B )。 A、page B、import C、include D、taglib 6、下面哪种数据类型是基本类型( D )。 A、class B、interface C、数组 D、char 7、下面哪种数据类型是引用类型( C )。 A、boolean B、int C、interface D、long 8、下面哪一个运算符具有3个操作数( D )。 A、* B、++ C、&& D、: 9、下面那个运算符只有一个操作数( A )。 A、~ B、|| C、<< D、/ 10、下面那个语句是条件语句( C )。 A、break语句 B、while语句 C、if语句 D、for语句 11、类中的成员默认的访问修饰符是( A )。 A、private B、protected C、public D、空 12、常量使用( C )进行修饰 A、private B、abstract C、final D、static 13、包含Servlet发回到客户端信息的ServletResponse对象是由( C )创建的。

JavaWeb程序设计教程课后练习答案

第1章 Web应用开发简介 习题答案 1.Web在组成上包括______和______两部分。 答案: 服务器 客户端 2.谈谈对面向对象的认识。 答案: 面向对象将将要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙解决问题中的各个步骤中的行为。面向对象编程方式是建立在面向过程编程方式基础上,其最重要的改变在于面向对象编程中,程序将围绕被操作的对象来设计,而不是操作本身。面向对象编程方式以类作为构造程序的基本单位,具有封装、抽象、继承、多态性等特点。 3.介绍几种常用的框架技术。 答案: Java中常用的框架。 1.Struts Struts是Apache 基金会Jakarta 项目组的一个开源项目,是一个基于Sun J2EE平台的MVC框架,它将Servlet和JSP标签作为实现自身功能的一部分。 2.WebWork WebWork是由OpenSymphony组织开发的,是一个基于Web的MVC框架。它在运行时通过Interceptor(拦截器)自动应用,因此脱离了Action类。 3.Struts 2 Struts 2是Apache基金会的一个开源项目,它建立在Struts框架与WebWork框架基础之上,继承了二者的优点,是目前非常流行的一个Web框架。 4.Spring Spring是一个以IoC和AOP为核心的轻量级容器框架。它提供了一系列的Java EE开发解决方案,包括表示层的Spring MVC、持久层的Spring JDBC以及业务层事务管理等众

多的企业级应用技术。 5.Hibernate Hibernate是一个ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装。通过使用Hibernate框架,开发人员能够以面向对象的思维方式来操作数据库。 6.Ibatis 相对于Hibernate而言,Ibatis是一个“半自动化”的ORM实现框架,它主要致力于POJO与SQL之间的映射关系,是对“全自动化”ORM框架的一种有益补充。 7.EasyJWeb EasyJWeb是一个核心基于模板技术实现的MVC框架,主要致力于Java Web应用程序的快速开发。 4.IDE的用途是什么? 答案: IDE是一种用于辅助开发人员开发应用程序的应用软件,它一般包括代码编辑器、编译器、调试器和图形用户界面工具,有的还包括版本控制系统、性能分析器等更多工具,因此IDE也就具有了编写、编译、调试等多种功能。正是基于这些功能,使用IDE能够减少项目的开发周期,减轻程序员的工作量,提高应用程序的开发效率等。 5.Web应用服务器的用途是什么? Web应用服务器是为创建、部署、运行以及管理Web应用提供多种运行时服务(如事务、安全等等)的分布式系统,它是应用程序运行的一个基本环境。

调试程序的简单说明.

难怪很多前辈说调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 我以前接触的程序大多是有比较成形的思路和方法,调试起来出的问题都比较小,最近这个是我自己慢慢摸索调试,接触了很多新的调试方法,并查了很多前辈的总结,受益匪浅,总结以前的和新的收获如下: VC 调试篇 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard 创建的工程中包含的Debug Configuration 自动包含调试信息,但是是不是Debug 版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration 中增加调试信息,包括Release 版本。 为了增加调试信息,可以按照下述步骤进行: ? 打开Project settings 对话框(可以通过快捷键ALT+F7打开,也可以通过IDE 菜单Project/Settings 打开 ?选择C/C++页,Category 中选择general ,则出现一个Debug Info 下拉列表框,可供选择的调试信息方式包括: 命令行 Project settings 说明 无 None 没有调试信息 /Zd Line Numbers Only 目标文件或者可执行文件中只包含全局和导出符号以及代码行信息,不包含符号调试信息

/Z7 C 7.0- Compatible 目标文件或者可执行文件中包含行号和所有符号调试信息,包括变量名及类型,函数及原型等 /Zi Program Database 创建一个程序库(PDB,包括类型信息和符号调试信息。 /ZI Program Database for Edit and Continue 除了前面/Zi 的功能外,这个选项允许对代码进行调试过程中的修改和继续执行。这个选项同时使 #pragma 设置的优化功能无效 ? 选择Link 页,选中复选框"Generate Debug Info",这个选项将使连接器把调试信息写进可执行文件和DLL ?如果C/C++页中设置了Program Database 以上的选项,则Link incrementally 可以选择。选中这个选项,将使程序可以在上一次编译的基础上被编译(即增量编译,而不必每次都从头开始编译。调试方法: 1、使用 Assert(原则:尽量简单assert只在debug下生效,release下不会被编译。 2、防御性的编程 3、使用Trace 4、用GetLastError来检测返回值,通过得到错误代码来分析错误原因 5、把错误信息记录到文件中 位置断点(Location Breakpoint 大家最常用的断点是普通的位置断点,在源程序的某一行按F9就设置了一个位置断点。但对于很多问题,这种朴素的断点作用有限。譬如下面这段代码:

VB程序调试技巧

一,如果遇到了一些逻辑性很强的问题比如有循环什么的我的方法是在关键地方加入 变量 这样可以比较好地找到问题 二,msgbox 三,监视窗口,如下面的例子 For i=1 to 10000 A=sqr(i) next i 你想再监视当i=799时A的值,就可以添加监视,方法:点调试,添加监视,选择“当监视值为真时中断”,上面表达式框中写上i=799, 这样你按F5,运行程序,程序会在i=799时中断。其他选项你可以自己去琢磨一下。 一个程序如何顺利的“脱产”,调试的过程是非常重要的。学过、钻研过程序设计的人都有同样的感受,很多情况下,调试程序的过程会比程序编写的过程更为困难。任何一个天才都不敢说,他编的程序是100%正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试、修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。 程序中的典型错误类型 A类:语法错误。 B类:编译错误。

C类:属性设置错误。 D类:逻辑错误。 调试方法 方法一:利用“MSDN帮助菜单” “MSDN帮助菜单”是一个很好的自学工具,对于出现调试对话框的菜单来说,可以按下“帮助”按钮查看错误原因。 对于一些不是很清楚的函数格式、保留字的作用,也可以借助“帮助菜单”。 方法二:逐过程检查 主要检查代码是否写对,位置有没有错误,关键是要确定一段代码是在哪个事件控制下的。 不妨先在脑海中把整个程序过一边,想一想究竟会有哪些事件发生(有些事件是人机互动的,例如:鼠标点击;而有些是机器自己执行的,这时要想到计时器的作用);然后想一想每一件事发生后有什么效果。我们代码所编写的一般就是事件发生后的这个效果,那么以此事件来决定代码所写的位置。

JavaWeb程序设计题库

、选择题 Java Web 程序设计题库 包含 Servlet 发回到客户端信息的 ServletResponse 对象是由( C )创建的。 A . 客户端的浏览器 B . Web 服务器的 HTTP 引擎 C . Web 服务器的 Servlet 容器 D . Servlet 对象 对于标准的 Web 网页,通常使用( B )表示响应信息是 HTML 格式的文本文件。 A . text/css B. text/html C .application/vnd.ms-excel D. application/msword 下面哪个方法不属于 session 对象( D ) A 、 getAttributeNames() B 、 getservletContext() C 、 invalidate() D 、 addCookie(Cookie cook) 下面哪个方法不属于 request 对象( B ) A 、 getServerName() B 、 getServerInfo() A 、 private B 、 abstrac t C 、 fina l D 、 13 、 14 、 15、 16、 C 、 D 、 1、 以下文件名后缀中, 只 有 C )不是静态网页的后缀。 2、 3、 4、 5、 6、 7、 8、 9、 A 、 .html B 、 .htm C .JSP D 、 .shtml 以下文件名后缀中, A 、 .jsp 在 page 指令中, A 、 language JSP 的结构由( A 、指令 只有 以下选项中,那一项不是 A 、 page 10、 11、 12、 B )不是动态网页的后缀。 B 、 .html C 、 .aspx D 、 php C )属性是可以在页面中重复的属性。 B 、 buffer )组成(多选) B 、注释 JSP 指令( )。 B 、 import C 、 C 、 C 、 面哪种数据类型是基本类型 A 、 class B 、 面哪种数据类型是引用类型 A 、 boolean 面哪一个运算符具有 B 、 int )。 interface 3 个操作数( B 、 ++ C 、 面那个运算符只有一个操作数( A 、 B 、 || 面那个语句是条件语句( A 、 break 语句 B 、 类中的成员默认的访问修饰符是( A 、 private B 、 )。 )。 C 、 )。 while 语句 protected )。 )。 C 、 常量使用( C )进行修饰 import 脚本元素 include 数组 interface C 、 C 、 C 、 public && << if 语句 D 、 D 、 D 、 D 、 D 、 D 、 autoflush 操作 taglib char long D 、 for 语句 D 、 ?: static

C Free 5程序调试方法

C Free 5.0 程序的单步调试 创建一份新的代码文件 可直接点击“文件”下的白色图标,或点击“文件”选择“新建”,或按快捷键“Ctrl + N”(C Free 5.0默认情况下新建的代码文件为.cpp 格式,可在“工具”、“环境选项”、“新建文件类型”中更改,C语言标准格式为.c 格式) 基于实例的C程序调试介绍 一、查看变量的内容 # include int main(int argc, char* argv[]) { int i; int sum; sum=0; for(i=1;i<=10;i++) sum=sum+i; printf("sum=%d",sum); return 0; } 第一步,打开C Free 5.0,输入上面的代码。 第二步,把光标移到“sum=0;”这一行,按F10 它的作 用是设 一个断 点,程序 运行到 这里时, 会停下 来。也就 是说,接 下来,程 序必须 通过按 F7键单 步运行 了。 第三步: 按F9 (开始调试) 我们发现有一箭头停留在这句语句上,它指示程序停留的位置,而箭头所在的语句(“sum=0;”)还没有执行。事实上,我们可以通过看一下内存变量sum的内容来验证。方法是这样的: 打开“调试”下的“监视”,或者按快捷键“Alt + 3”。 在“监视”的空白处点击鼠标右键,选择“添加监视”。

输入需要监视的变量名,这里输入为sum 这时我们可以在监视窗口中看到sum的内容不为0,而是一个随机的值。 第四步,我们按一下F7(进入),我们发现sum的内容变为0了。这说明“sum=0;”这句语句被执行了。 我们还可以用同样的方法看一下i的内容。 只需要鼠标点 第六步,一步一步地按F7,我们可以发现在单步执行for循环语句的时候i和sum的内容在不断变化。当退出循环时,我们发现i的内容为11(因为变量i的内容为11,i<=10这个条件不满足,所以程序退出循环)。 附带提一下,当程序已经执行了“sum=0;”这一句语句后,如果我们直接把光标移到“printf("sum=%d",sum);”,然后按Ctrl+ F8,我们可以直接把上面的for循环都执行了,而不必一步一步地按F7。在实践中,为了查找程序的逻辑错误,我们往往要单步运行该程序好几遍。如果已经通过单步调试验证某一段语句(如一个for循环语句或者几个用户定义的函数)正确了,我们就可以用Ctrl+ F8跳过这段语句,直接运行到还未测试的语句。二、F7(进入)和F8(跳过)的区别 # include int add(int m,int n) { int s; s=m+n; return s; } int main(int argc, char* argv[]) { int i=1; int j=2;

《Java Web程序设计》试卷四

〈JSP程序设计〉试卷四 一、填空题(每空2 分,共40分) 1.JSP文件最终会转换为文件。2.在JSP文件中汉字所使用的编码机制是。 4.是,<%--注释内容--> 是。 7.在JSP中连接数据库通常有两种形式:一是; 二是。8. 操作可以定义一个具有一定生存范围以及一个唯 一id的JavaBean的实例。 9.是Sun公司推出的一种在服务器端运行的小程序,它的 实质就是一个类,是一个能够使用print语句产生动态HTML内容的Java类。10.编译Servlet之前,将Servlet所需要的包添加到classpath中。 11.Java API 提供了和包为编写Servlet提供了接口和类。 12.在编写Servlet时要用到的javax.servlet.HttpServlet类为 的子类。 13.是同应答相关的HttpServletResponse类的一个对象,它封装了服务器对客户端的响应,然后被送到客户端以响应客户请求。

15. DatabaseMetaData接口用来获取数据库中可能取得的所有数据类型的描述 的方法是方法。 16.ResultSetMetaData类用来指示指定列的最大标准宽度的方法是 方法。 二、判断题(每小题2分,共30分) 1.charset=GB2312指明了页面中html动态内容的编码方式。()。 2.学习JSP并不需要学习JavaBean。( ) 3.JSP的执行肯定要经过Servlet才能执行。() 4. 格式如“”的注释是隐藏注释。() 5.Page指令的所有属性都可以重复设置。() 6. 操作允许将请求转发到其他的HTML文件、JSP文件或者是一个程序段, 通常请求被转发后,会停止当前JSP文件的执行。( ) 7.JSP内置对象是指不用声明就可以在JSP页面的脚本部分使用的对象。() 8.空字符串""和NULL的意义是相同的,都表示这个对象不存在。() 9.在服务器上存放cookie的数量是有限制的。() 10.执行Statement接口的executeUpdate()方法会返回一个ResultSet对象。 ( F ) 11.JavaBean中的属性既可以是public型的,也可以是private型的。() 12.中的name及property区分大小写。() 13.Servlet包含类包javax.servlet与javax.servlet.http。() 14. 在Servlet中系统自动解决中文显示问题。() 15. 如果用JDK直接编译Servlet将引起程序错误。() 三、选择题(每小题 2 分,共30 分) 1.下面哪一个不是JSP本身已加载的基本类?() (A)https://www.doczj.com/doc/8a10394509.html,ng.* (B)java.io.* (C)javax.servlet.* (D)javax.servlet.jsp.*

PLC程序调试方法及步骤

来源:中国物资采购网时间:2010年5月6日11时20分【大中小】PLC程序的调试可以分为模拟调试和现场调试两个调试过程,在此之前首先对PLC外部接线作仔细检查,这一个环节很重要。外部接线一定要准确无误。也可以用事先编写好的试验程序对外部接线做扫描通电检查来查找接线故障。不过,为了安全考虑,最好将主电路断开。当确认接线无误后再连接主电路,将模拟调试好的程序送入用户存储器进行调试,直到各部分的功能都正常,并能协调一致地完成整体的控制功能为止。 1.程序的模拟调试 将设计好的程序写入PLC后,首先逐条仔细检查,并改正写入时出现的错误。用户程序一般先在实验室模拟调试,实际的输入信号可以用钮子开关和按钮来模拟,各输出量的通/断状态用PLC上有关的发光二极管来显示,一般不用接PLC实际的负载(如接触器、电磁阀等)。可以根据功能表图,在适当的时候用开关或按钮来模拟实际的反馈信号,如限位开关触点的接通和断开。对于顺序控制程序,调试程序的主要任务是检查程序的运行是否符合功能表图的规定,即在某一转换条件实现时,是否发生步的活动状态的正确变化,即该转换所有的前级步是否变为不活动步,所有的后续步是否变为活动步,以及各步被驱动的负载是否发生相应的变化。 在调试时应充分考虑各种可能的情况,对系统各种不同的工作方式、有选择序列的功能表图中的每一条支路、各种可能的进展路线,都应逐一检查,不能遗漏。发现问题后应及时修改梯形图和PLC中的程序,直到在各种可能的情况下输入量与输出量之间的关系完全符合要求。 如果程序中某些定时器或计数器的设定值过大,为了缩短调试时间,可以在调试时将它们减小,模拟调试结束后再写入它们的实际设定值。 在设计和模拟调试程序的同时,可以设计、制作控制台或控制柜,PLC之外的其他硬件的安装、接线工作也可以同时进行。 2.程序的现场调试 完成上述的工作后,将PLC安装在控制现场进行联机总调试,在调试过程中将暴露出系统中可能存在的传感器、执行器和硬接线等方面的问题,以及PLC的外部接线图和梯形图程序设计中的问题,应对出现的问题及时加以解决。如果调试达不到指标要求,则对相应硬件和软件部分作适当调整,通常只需要修改程序就可能达到调整的目的。全部调试通过后,经过一段时间的考验,系统就可以投入实际的运行了。 本文来自: 中国物资采购网https://www.doczj.com/doc/8a10394509.html, 详细出处参考:https://www.doczj.com/doc/8a10394509.html,/newsinfo/2010-5-6/201056-11200321719338297.html PLC程序现场调试指在工业现场,甩有设备都安装好后,所有连接线都接好后的实际调试。也是PLC程序的最后调试。现场调试的目的是,调试通过后,可交给用户使用,或试运行。现场调试参与的人员较多,要组织好,要有调试大纲。依大纲,按部就班地一步步推进。开始调试时,设备可先不运转,甚至了不要带电。可随着调试的进展逐步加电、开机、加载,直到按额定条件运转。具体过程大体是: 1)、要查接线、核对地址。要逐点进行,要确保正确无误。可不带电核对,那就是查线,较麻烦。也可带电查,加上信号后,看电控系统的动作情况是否符合设计的目的。 2)、检查模拟量输入输出。看输入输出模块是否正确,工作是否正常。必要时,还可用标准仪器检查输入输出的精度。 3)、检查与测试指示灯。控制面板上如有指示灯,应先对应指示灯的显示进行检查。一方面,查看灯坏了没有,另一方面检查逻辑关系是否正确。指示灯是反映系统工作的一面镜子,先调好它,将对进一步调试提供方便。 4)、检查手动动作及手动控制逻辑关系。完成了以上调试,继而可进行手动动作及手动

程序调试步骤

一、认识调试功能 在组建(build)菜单中,点击开始调试(start debug),在其下级子菜单中,包含了启动调试器运行的各项子命令(如图1所示) 图1 开始调试菜单 各子命令及其功能如下: ?Go:从程序中的当前语句开始执行,直到遇到断点(后面讲)或遇到程序结束。 ?Step Into:控制程序单步执行,并在遇到函数调用时进入函数内部。 ?Run to Cursor:在调试运行程序时,使程序运行到当前光标所在位置时停止,相当于设置了一个临时断点。 二、单步调试代码 利用图1菜单中的Step into功能或按F11键,进入单步调试状态,有一个箭头指向程序的第一行,每按一次F11键,程序再向前执行一行语句,如图2所示。

图2 开始调试后的界面 我们对图2的界面进行观察。 首先,菜单中增加一个调试(debug)菜单,如图中①处,下面是菜单中的部分功能(鼠标浮到上面时,会有提示,请试一试。) ?Step Into(F11):单步调试程序,遇到调用函数时,进入函数内部逐步执行; ?Step Over(F10):也是单步调试程序,遇到调用函数时,并不进入函数内容执行; ?Step Out:调试程序时,从正在执行的某个嵌套结构的内部跳到该结构的外部,常用于知道调用函数中不存在错误的情况; ?Run to Cursor(CTRL-F10):调试程序时,直接运行到插入点处。 其次,和当前正在执行的语句相关的变量,以及其当前的值显示在了②处。 再次,黄色箭头代表了正在执行的位置。 【练习1】 下面,针对求1+2+3+...+100的程序,体验单步执行。步骤: (1)编写如图所示求1+2+3+...+100的程序,排除编译错误; (2)按前述开始单步执行,用“Step Into(F11)”持续执行,在执行过程中,注意观察变量的变化。 ?调试中,要将自己的预期和计算机执行的结果进行比较,当发现不一致,恭喜,问题找到了。

相关主题
文本预览
相关文档 最新文档