调试ASP脚本

2018-09-06 10:35

阅读:635

  无论您的计划多么精密、经验多么丰富,脚本错误(bug)可能在最初就使您的ASP服务器端的脚本无法正确运行。也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的ASP程序是非常重要的。
Microsoft脚本调试工具
Microsoft?ScriptDebugger是一个功能强大的调试工具,它能帮助您迅速查找错误并对服务器端的脚本进行交互测试。ScriptDebugger与WindowsInternetExplorer3.0版本或更新的版本一起工作。通过它,您可以:
逐行运行服务器端脚本。
在服务器端脚本执行时,打开命令窗口监视变量、属性或数组元素的值。
在特定行设置暂停标记,挂起服务器端脚本(使用调试工具或脚本命令)。
在运行服务器端脚本时跟踪过程。
注意您可以使用调试工具查看脚本并找到错误所在,但是不能直接编辑脚本。要想改正错误,必须用编辑器编辑脚本然后保存,再运行脚本。
详细信息,请参阅Microsoft脚本调试程序.
(该功能不能用于Windows95或更高的版本。)

启用调试
在开始调试服务器端脚本之前,您必须首先配置Web服务器,使其支持ASP调试。有关配置命令及信息,请参阅启用ASP调试。
在启用Web服务器调试之后,就可以使用下面的任一方法调试脚本:
手工打开Microsoft脚本调试器,调试ASP服务器端脚本。
使用InternetExplorer请求.asp文件。如果该文件包含错误或人为添加的停止执行语句,那么Microsoft脚本调试程序将自动启动,显示该脚本,并且指出错误来源。

脚本错误
调试服务器端脚本时,您可能会碰到各种类型的错误。其中的某些错误使脚本无法正确执行、程序停止执行或返回错误结果。

语法错误
语法错误是经常碰到的错误,它是由不正确的脚本语法导致的。例如,命令拼写错误或传递给函数的参数不正确都将产生错误。语法错误可能导致您的脚本不能运行。

运行时错误
运行时错误是脚本在执行过程中脚本指令试图执行不可能的动作而导致的。例如,下面的脚本中包含一个被零除(一种非法的数学运算)的函数,将

产生运行时错误:
<scriptlanguage=VBScriptrunat=server>
Result=Findanswer(15)
document.write(TheanswerisResult)
FunctionFindanswer(x)
Thisstatementgeneratesarun-timeerror.
Findanswer=x/0
EndFunction
</script>
必须纠正导致运行时错误的错误,这样才能使脚本在运行时不被中断。

逻辑错误
逻辑错误通常可能是潜在和难以检测的。如果有因键入错误或程序逻辑流程错误引起的逻辑错误,脚本可能会成功运行,但产生的结果却是错的。例如,一服务器端脚本计划对一个值列表排序,如果本应使用<符号比较数值,但却使用了>符号,那么将返回不正确的排序结果。

错误调试技术
可以使用多种不同的调试技术来查找错误的根源并测试应用程序。
实时(Just-In-Time,JIT)调试
当一个运行时错误中断了ASP脚本的执行时,Microsoft脚本调试程序自动启动,显示.asp文件,将语句指针指向导致错误的行,并产生错误消息。这种调试方式称为实时(JIT)调试,计算机将暂停程序的执行。必须用编辑程序纠正这些错误,保存所做的修正,然后再运行脚本。

断点调试
当一个错误发生并且很难找到错误的根源时,可使用预设断点的调试方法。断点将脚本暂停在特定一行。可以在脚本中有疑问处设置一个或多个不同的断点,然后使用调试器去改正脚本中设置的变量或属性的值。当您纠正这些错误之后,可以清除断点以便您的脚本能不间断地运行。
请用Microsoft脚本调试程序打开脚本,设置断点。然后用Web浏览器请求此脚本。当执行到脚本中含有断点的行时,计算机启动脚本调试程序,并且语句指针会指在设置了断点的行上。
VBScriptStop语句调试器
通过在服务器端脚本中有问题的部分前面插入Stop语句,您也可以将断点添加到用VBScript编写的服务器端脚本中。例如,下面的ASP脚本包含一个Stop语句,用来在显示结果之前暂停执行:
<%
dayvalue=3
TheDay=WeekDayName(dayvalue)
Stopsetbreakpointhere.
Response.Write(Todayis+TheDay)
%>
当您在请求Web浏览器使用的先前的脚本时,调试程序启动并自动显示.asp文件,而且语句指针会指示stop语句的位置。一定要记住从交付使用的.asp文件中删除Stop语句。
用JScriptDebugger语句调试
要将断点加到用Microsoft?JScript编写的服务器端脚本中,可在有疑问的行前插入debugger语句。例如,下面的脚本包含了debugger语句,每次脚本循环到一个新值时,就会中断执行并自动启动Microsoft脚本调试程序。
<%@Language=JScript%>
<%
for(varcount=1;count<=10;count++){
vareventest=count%2;
debugger//Setsbreakpoint
if(eventest==0){
response.write(Evenvalueis+count+<br>)
}
}
%>
请记住从交付使用的.asp文件中删除debugger语句。
注意不要混淆debugger语句和JScriptbreak语句。在程序执行期间,break语句仅退出当前循环,并不激活Microsoft脚本调试器,也不暂停程序的执行。
脚本调试技巧
除脚本调试程序外,一套好的调试技巧也能减少花费在分析脚本错误根源上的大量时间。尽管大部分错误是由显而易见的根源导致的,但命令拼写错误或丢失变量、某种类型的逻辑和执行错误也可能因不太明显的根源所致。详细信息,请参阅Microsoft脚本调试程序文档的调试技巧部分。


评论


亲,登录后才可以留言!