Silverlight調(diào)試基本概念詳解
Silverlight調(diào)試的方式是一個(gè)比較復(fù)雜的步驟。在實(shí)際編程中,這一步驟又是相當(dāng)重要的。所以,作為uiyiming有需求的程序員來說必須熟練的操作這一步驟。#t#
創(chuàng)建一個(gè)程序的過程中調(diào)試環(huán)節(jié)是必不可少的步驟,而且是相當(dāng)重要的。在Silverlight的開發(fā)過程中,我們主要用Silverlight Tools for Visual Studio 2008 來對(duì)Silverlight應(yīng)用程序進(jìn)行調(diào)試。Silverlight Tools 支持大多數(shù)托管調(diào)試功能。但是,它不支持"編輯并繼續(xù)"、實(shí)時(shí)調(diào)試和混合模式調(diào)試。
安裝 Silverlight Tools 后,可以像調(diào)試任何其他項(xiàng)目類型那樣來調(diào)試 Silverlight 項(xiàng)目。按 F5 后,Visual Studio 將在默認(rèn)的瀏覽器中啟動(dòng)您的應(yīng)用程序,并附加調(diào)試器。然后,您可以執(zhí)行常見任務(wù),例如設(shè)置斷點(diǎn)和檢查調(diào)用堆棧。
Silverlight調(diào)試1 將調(diào)試器附加到 Silverlight 進(jìn)程
安裝 Silverlight Tools 后,還可以將調(diào)試器附加到任意本地進(jìn)程(前提是該進(jìn)程是在受支持的瀏覽器中運(yùn)行基于 Silverlight 的應(yīng)用程序)。"附加到進(jìn)程"對(duì)話框(在"調(diào)試"菜單上)列出了在"類型"列中標(biāo)有"Silverlight"的那些進(jìn)程。若要調(diào)試 Silverlight 代碼,請(qǐng)使用"附加到"的默認(rèn)值"Silverlight"來附加到瀏覽器進(jìn)程。請(qǐng)注意,可以使用"附加到"的值"腳本"來在宿主網(wǎng)頁(yè)中調(diào)試 JavaScript 代碼。但是,不能同時(shí)調(diào)試 Silverlight 代碼和 JavaScript 代碼。
Silverlight調(diào)試2 將調(diào)試器附加到遠(yuǎn)程 Mac 進(jìn)程
您還可以將調(diào)試器附加到一個(gè)遠(yuǎn)程 Mac 瀏覽器進(jìn)程(前提是該進(jìn)程運(yùn)行基于 Silverlight 的應(yīng)用程序)。此操作要求在兩臺(tái)計(jì)算機(jī)上都要執(zhí)行一些額外的配置步驟,并且僅在運(yùn)行 Windows 的計(jì)算機(jī)和 Mac 計(jì)算機(jī)之間支持此操作。另外,當(dāng)調(diào)試遠(yuǎn)程進(jìn)程時(shí),"反匯編"和"寄存器"窗口不可用。
Silverlight調(diào)試3 Silverlight 調(diào)試 API
用于實(shí)現(xiàn) Silverlight 托管代碼調(diào)試的本機(jī) API 是 ICorDebug Interface(ICorDebug 接口)。雖然 Silverlight 會(huì)添加一些新的 API,但該 API 還可用于實(shí)現(xiàn)使用完整 .NET Framework 的托管應(yīng)用程序的調(diào)試器。這意味著,您可以將現(xiàn)有托管代碼調(diào)試器擴(kuò)展為支持 Silverlight,而無需使用大量新代碼。
Silverlight調(diào)試4 在Silverlight 項(xiàng)目中調(diào)試 JavaScript
在 Visual Studio 中,可以在托管 Silverlight 代碼設(shè)置斷點(diǎn),也可以在宿主網(wǎng)頁(yè)中的 JavaScript 代碼中設(shè)置斷點(diǎn)。但是,如本主題前面所述,不能同時(shí)調(diào)試 Silverlight 代碼和 JavaScript 代碼。若要使用 Internet Explorer 調(diào)試 JavaScript,首先必須將瀏覽器配置為啟用腳本調(diào)試。在 Internet Explorer 的"工具"菜單上,選擇"Internet 選項(xiàng)"。然后,在"高級(jí)"選項(xiàng)卡上,執(zhí)行以下操作:
• 清除"禁用腳本調(diào)試(Internet Explorer)"復(fù)選框
• 清除"禁用腳本調(diào)試(其他)"復(fù)選框。
• 選中"顯示每個(gè)腳本錯(cuò)誤的通知"復(fù)選框。
• 清除"顯示友好 HTTP 錯(cuò)誤消息"復(fù)選框。
當(dāng)您使用 F5 調(diào)試基于Silverlight調(diào)試的應(yīng)用程序時(shí),Visual Studio 默認(rèn)情況下將附加 Silverlight 調(diào)試器。JavaScript 斷點(diǎn)將顯示一個(gè)工具提示,其消息為"當(dāng)前不會(huì)命中斷點(diǎn)。還沒有為該文檔加載任何符號(hào)。"可以用下列兩種方法之一調(diào)試 JavaScript 代碼:
• 使用 Ctrl+F5 啟動(dòng)您的應(yīng)用程序,而不啟動(dòng)調(diào)試器。然后可以按照本主題前面所述,使用"腳本"代碼類型將調(diào)試器附加到瀏覽器進(jìn)程。附加調(diào)試器后,可以刷新瀏覽器以重新加載 Silverlight 插件。該插件是調(diào)試應(yīng)用程序啟動(dòng)代碼所必需的。
• 如果解決方案中包含 Web 項(xiàng)目,請(qǐng)禁用 Silverlight 調(diào)試器。在 Visual Studio 中,選擇該 Web 項(xiàng)目,然后在"項(xiàng)目"菜單上,選擇項(xiàng)目名稱"屬性"。接下來,在"Web"選項(xiàng)卡中的"調(diào)試器"部分,清除"Silverlight"復(fù)選框。然后,可以使用 F5 在不附加腳本調(diào)試器的情況下啟動(dòng)您的應(yīng)用程序。
如果附加了腳本調(diào)試器,將禁用托管Silverlight調(diào)試代碼中的斷點(diǎn)。