明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

調(diào)試 ASP 腳本

[摘要]無論您的計劃多么精密、經(jīng)驗多么豐富,腳本錯誤 (bug) 可能在最初就使您的 ASP 服務(wù)器端的腳本無法正確運行。也就是說調(diào)試,即查找和糾正腳本錯誤,對開發(fā)一個成功的和強健的 ASP 程序是非常重要的。 Microsoft 腳本調(diào)試工具 Microsoft Script Debugger 是一個功...

無論您的計劃多么精密、經(jīng)驗多么豐富,腳本錯誤 (bug) 可能在最初就使您的 ASP 服務(wù)器端的腳本無法正確運行。也就是說調(diào)試,即查找和糾正腳本錯誤,對開發(fā)一個成功的和強健的 ASP 程序是非常重要的。

Microsoft 腳本調(diào)試工具
Microsoft® Script Debugger 是一個功能強大的調(diào)試工具,它能幫助您迅速查找錯誤并對服務(wù)器端的腳本進行交互測試。Script Debugger 與 Windows Internet Explorer 3.0 版本或更新的版本一起工作。通過它,您可以:



逐行運行服務(wù)器端腳本。

在服務(wù)器端腳本執(zhí)行時,打開命令窗口監(jiān)視變量、屬性或數(shù)組元素的值。

在特定行設(shè)置暫停標記,掛起服務(wù)器端腳本(使用調(diào)試工具或腳本命令)。

在運行服務(wù)器端腳本時跟蹤過程。

注意 您可以使用調(diào)試工具查看腳本并找到錯誤所在,但是不能直接編輯腳本。要想改正錯誤,必須用編輯器編輯腳本然后保存,再運行腳本。

(該功能不能用于 Windows 95 或更高的版本。)

啟用調(diào)試
在開始調(diào)試服務(wù)器端腳本之前,您必須首先配置 Web 服務(wù)器,使其支持 ASP 調(diào)試。

在啟用 Web 服務(wù)器調(diào)試之后,就可以使用下面的任一方法調(diào)試腳本:


手工打開 Microsoft 腳本調(diào)試器,調(diào)試 ASP 服務(wù)器端腳本。

使用 Internet Explorer 請求 .asp 文件。如果該文件包含錯誤或人為添加的停止執(zhí)行語句,那么 Microsoft 腳本調(diào)試程序?qū)⒆詣訂,顯示該腳本,并且指出錯誤來源。


腳本錯誤
調(diào)試服務(wù)器端腳本時,您可能會碰到各種類型的錯誤。其中的某些錯誤使腳本無法正確執(zhí)行、程序停止執(zhí)行或返回錯誤結(jié)果。

語法錯誤
語法錯誤是經(jīng)常碰到的錯誤,它是由不正確的腳本語法導致的。例如,命令拼寫錯誤或傳遞給函數(shù)的參數(shù)不正確都將產(chǎn)生錯誤。語法錯誤可能導致您的腳本不能運行。

運行時錯誤
運行時錯誤是腳本在執(zhí)行過程中腳本指令試圖執(zhí)行不可能的動作而導致的。例如,下面的腳本中包含一個被零除(一種非法的數(shù)學運算)的函數(shù),將產(chǎn)生運行時錯誤:

<script language = "VBScript" runat = server>
Result = Findanswer(15)
document.write ("The answer is " &Result)

Function Findanswer(x)
'This statement generates a run-time error.
Findanswer = x/0
End Function
</script>
必須糾正導致運行時錯誤的錯誤,這樣才能使腳本在運行時不被中斷。

邏輯錯誤
邏輯錯誤通?赡苁菨撛诤碗y以檢測的。如果有因鍵入錯誤或程序邏輯流程錯誤引起的邏輯錯誤,腳本可能會成功運行,但產(chǎn)生的結(jié)果卻是錯的。例如,一服務(wù)器端腳本計劃對一個值列表排序,如果本應(yīng)使用 “<” 符號比較數(shù)值,但卻使用了“ >” 符號,那么將返回不正確的排序結(jié)果。

錯誤調(diào)試技術(shù)
可以使用多種不同的調(diào)試技術(shù)來查找錯誤的根源并測試應(yīng)用程序。

實時 (Just-In-Time, JIT) 調(diào)試
當一個運行時錯誤中斷了 ASP 腳本的執(zhí)行時,Microsoft 腳本調(diào)試程序自動啟動,顯示 .asp 文件,將語句指針指向?qū)е洛e誤的行,并產(chǎn)生錯誤消息。這種調(diào)試方式稱為實時 (JIT) 調(diào)試,計算機將暫停程序的執(zhí)行。必須用編輯程序糾正這些錯誤,保存所做的修正,然后再運行腳本。

斷點調(diào)試
當一個錯誤發(fā)生并且很難找到錯誤的根源時,可使用預(yù)設(shè)斷點的調(diào)試方法。斷點將腳本暫停在特定一行?梢栽谀_本中有疑問處設(shè)置一個或多個不同的斷點,然后使用調(diào)試器去改正腳本中設(shè)置的變量或?qū)傩缘闹。當您糾正這些錯誤之后,可以清除斷點以便您的腳本能不間斷地運行。

請用 Microsoft 腳本調(diào)試程序打開腳本,設(shè)置斷點。然后用 Web 瀏覽器請求此腳本。當執(zhí)行到腳本中含有斷點的行時,計算機啟動腳本調(diào)試程序,并且語句指針會指在設(shè)置了斷點的行上。

VBScript Stop 語句調(diào)試器
通過在服務(wù)器端腳本中有問題的部分前面插入 Stop 語句,您也可以將斷點添加到用 VBScript 編寫的服務(wù)器端腳本中。例如,下面的 ASP 腳本包含一個 Stop 語句,用來在顯示結(jié)果之前暫停執(zhí)行:

<%
dayvalue = 3
TheDay = WeekDayName(dayvalue)
Stop 'set breakpoint here.
Response.Write("Today is " + TheDay)
%>
當您在請求 Web 瀏覽器使用的先前的腳本時,調(diào)試程序啟動并自動顯示 .asp 文件,而且語句指針會指示 stop 語句的位置。一定要記住從交付使用的 .asp 文件中刪除 Stop 語句。

用 JScript Debugger 語句調(diào)試
要將斷點加到用 Microsoft&#174; JScript 編寫的服務(wù)器端腳本中,可在有疑問的行前插入 debugger 語句。例如,下面的腳本包含了 debugger 語句,每次腳本循環(huán)到一個新值時,就會中斷執(zhí)行并自動啟動 Microsoft 腳本調(diào)試程序。

<%@ Language="JScript" %>
<%
for (var count = 1; count <= 10; count++) {
var eventest = count%2;
debugger //Sets breakpoint
if (eventest == 0) {
response.write("Even value is " + count + "<br>")
}
}
%>
請記住從交付使用的 .asp 文件中刪除 debugger 語句。

注意 不要混淆 debugger 語句和 JScript break 語句。在程序執(zhí)行期間,break 語句僅退出當前循環(huán),并不激活 Microsoft 腳本調(diào)試器,也不暫停程序的執(zhí)行。

腳本調(diào)試技巧
除腳本調(diào)試程序外,一套好的調(diào)試技巧也能減少花費在分析腳本錯誤根源上的大量時間。盡管大部分錯誤是由顯而易見的根源導致的,但命令拼寫錯誤或丟失變量、某種類型的邏輯和執(zhí)行錯誤也可能因不太明顯的根源所致。(出處:熱點網(wǎng)絡(luò))