調(diào)試允許開發(fā)人員逐步了解代碼的工作過程,變量的值是如何變化的,如何創(chuàng)建和銷毀對(duì)象等。
當(dāng)網(wǎng)站第一次執(zhí)行時(shí),Visual Studio會(huì)顯示一個(gè)提示,詢問是否應(yīng)該啟用它來進(jìn)行調(diào)試。
為了方便演示,這里創(chuàng)建一個(gè)ASP.NET空網(wǎng)站,并添加一個(gè)窗體文件:Default.aspx ,以及后端 Default.aspx.cs 文件。簡(jiǎn)單實(shí)現(xiàn)計(jì)算輸入字符串的長(zhǎng)度。
Default.aspx 文件的代碼 -
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>用于演示調(diào)試代碼</title>
</head>
<body>
<form id="form1" runat="server">
<div>
輸入字符串:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="計(jì)算長(zhǎng)度" />
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
Default.aspx.cs 文件的代碼 -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
String str = TextBox1.Text;
String msg = "當(dāng)前字符串長(zhǎng)度為:"+(str.Length).ToString();
Label1.Text = msg;
}
}
可以在代碼行的左側(cè)點(diǎn)擊右鍵插入斷點(diǎn),假設(shè)在代碼的第17行設(shè)置了一個(gè)斷點(diǎn),如下 -

通過點(diǎn)主菜單中的【調(diào)試】->【開始調(diào)試】,來啟用調(diào)試,如下所示 -

這里啟動(dòng)了網(wǎng)站頁面,然后輸入一個(gè)字符串,并點(diǎn)擊提交 -

也可以通過在web.config中配置以下代碼行:
<system.web>
<compilation debug="true">
<assemblies>
..............
</assemblies>
</compilation>
</system.web>
調(diào)試工具欄提供了所有可用于調(diào)試的工具。和其它的IDE差不多,多次使用和練習(xí)就可以了。
斷點(diǎn)指定運(yùn)行時(shí)運(yùn)行特定的代碼行,然后停止執(zhí)行,以便可以檢查代碼并執(zhí)行各種調(diào)試工作,例如,更改變量的值,逐步執(zhí)行代碼,移入和移出函數(shù)和方法等等。
Visual Studio提供了以下調(diào)試窗口,每個(gè)窗口都顯示一些程序信息。下表列出了窗口:
| 編號(hào) | 窗口 | 描述 |
|---|---|---|
| 1 | Immediate |
顯示變量和表達(dá)式。 |
| 2 | Autos |
顯示當(dāng)前和之前的語句中的所有變量。 |
| 3 | Locals |
顯示當(dāng)前上下文中的所有變量。 |
| 4 | Watch |
最多顯示四組不同的變量。 |
| 5 | Call Stack |
顯示調(diào)用堆棧中的所有方法。 |
| 6 | Threads |
顯示和控制線程。 |