鍍金池/ 教程/ C#/ 調(diào)試
調(diào)試
管理狀態(tài)
Panel 控件
Web 服務(wù)
語言集成查詢
數(shù)據(jù)源
基礎(chǔ)控件
廣告輪轉(zhuǎn)器
服務(wù)器端
服務(wù)器控件
ADO.NET
多線程
HTML 服務(wù)器
生命周期
Ajax 控制
客戶端
異常處理
環(huán)境設(shè)置
部署
個(gè)性化
驗(yàn)證器
多視圖
日歷
文件上傳
ASP.NET - 數(shù)據(jù)綁定
數(shù)據(jù)庫存取
實(shí)例
自定義控件
簡(jiǎn)介
配置
數(shù)據(jù)緩存
安全性
指令
事件處理

調(diào)試

Debugging 可以讓開發(fā)人員一步一步的看到代碼是怎樣工作的,變量的值是如何變化的和對(duì)象是怎樣被創(chuàng)建又是怎樣被銷毀的等等。

當(dāng)一個(gè)網(wǎng)頁第一次被運(yùn)行時(shí),Visual Studio 會(huì)彈出一個(gè)提示框來詢問 Debugging 是否需要被啟用:

http://wiki.jikexueyuan.com/project/asp-net/images/debugging_info.jpg" alt="debugging_info" />

當(dāng) debugging 被啟用時(shí),下面幾行代碼將在 web.config 文件中出現(xiàn):

<system.web>  
    <compilation debug="true">  
        <assemblies>  
        ..............  
        </assemblies>  
    </compilation>  
</system.web>  

Debugging 工具欄會(huì)提供所有 debugging 所需的工具:

http://wiki.jikexueyuan.com/project/asp-net/images/debugging_toolbar.jpg" alt="debugging_toolbar.jpg" />

斷點(diǎn)

斷點(diǎn)規(guī)定程序在運(yùn)行時(shí)在運(yùn)行完指定的代碼行之后立即停止運(yùn)行,這樣可以測(cè)試代碼并且完成各種各樣的 debugging 工作,例如,觀察變量值的變化,單步調(diào)試代碼,函數(shù)方法的跳入跳出等。
在代碼上單擊右鍵選擇插入一個(gè)間斷點(diǎn)來設(shè)置斷點(diǎn)。然后在左邊會(huì)出現(xiàn)一個(gè)紅點(diǎn)并且該行代碼被高亮顯示,效果如圖所示:

http://wiki.jikexueyuan.com/project/asp-net/images/breakpoint_highlighted.jpg" alt="breakpoint_highlighted.jpg" />

之后你運(yùn)行這段代碼,將會(huì)觀察到斷點(diǎn)的行為。

http://wiki.jikexueyuan.com/project/asp-net/images/breakpoint_highlighted2.jpg" alt="breakpoint_highlighted2.jpg" />

在這個(gè)階段,你可以單步調(diào)試代碼,觀察運(yùn)行的流程和變量值、屬性、對(duì)象等。

如果你需要修改斷點(diǎn)屬性,你可以在斷點(diǎn)標(biāo)志上單擊右鍵,在“屬性”菜單中找到:

http://wiki.jikexueyuan.com/project/asp-net/images/breakpoint_dropdown.jpg" alt="breakpoint_dropdown.jpg" />

location 對(duì)話框顯示文件所在位置,以及所選中的代碼所在行數(shù)和字符數(shù)。condition 菜單允許你輸入一個(gè)有效的表達(dá)式來估算程序是否運(yùn)行到了斷點(diǎn):

http://wiki.jikexueyuan.com/project/asp-net/images/breakpoint_condition.jpg" alt="breakpoint_condition.jpg" />

Hit Count 菜單顯示一個(gè)對(duì)話框來顯示斷點(diǎn)被運(yùn)行的次數(shù)。

http://wiki.jikexueyuan.com/project/asp-net/images/breakpoint_asp.net.jpg" alt="breakpoint_asp.net.jpg" />

點(diǎn)擊下拉菜單中的任何一個(gè)選項(xiàng)會(huì)打開一個(gè)用來輸入命中次數(shù)的編輯框。這在分析循環(huán)結(jié)構(gòu)的代碼時(shí)非常有用。

http://wiki.jikexueyuan.com/project/asp-net/images/breakpoint_asp.net2.jpg" alt="breakpoint_asp.net2.jpg" />

Filter 菜單允許設(shè)置一個(gè)對(duì)特定機(jī)制、過程、線程或是任何組合的過濾使斷點(diǎn)對(duì)它們生效。

http://wiki.jikexueyuan.com/project/asp-net/images/breakpoint_filters.jpg" alt="breakpoint_filters.jpg" />

When Hit 菜單允許你來指定當(dāng)斷點(diǎn)命中時(shí)的動(dòng)作。

http://wiki.jikexueyuan.com/project/asp-net/images/breakpoint_asp.net3.jpg" alt="breakpoint_asp.net3.jpg" />

Debug 窗口

Visual Studio 提供下面的 debug 窗口,其中每一個(gè)都顯示一些程序信息。下表列出了一些窗口:

窗口 描述
直接 顯示變量和表達(dá)式。
自動(dòng) 顯示當(dāng)前所有變量以及之前的狀態(tài)。
本地 顯示當(dāng)前上下文的所有變量。
觀察 顯示多達(dá)四個(gè)不同集合的變量。
調(diào)用棧 顯示調(diào)用棧中的所有方法。
線程 顯示并控制線程。