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