SOS (Son of Strike)調試擴展可以讓我們在調試過程中查看CLR運行代碼。SOS.dll隨.NET一起安裝,對於.NET 4.0來說,SOS.dll的所在位置是:C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll。
□ 安裝Debugging Tools for Windows
在使用SOS之前,需要安裝調試工具,在這裡。在"Standalone Debugging Tools for Windows(WinDbg)"中找到需要下載的資源,下載獲得一個名為"sdksetup.exe"的可執行文件。
→雙擊運行
→選擇安裝位置,點擊若干次"Next",來到"Select the features you want to install"界面
→只勾選"Debugging Tools for Windows",點擊"Install"
□ 使用SOS調試擴展
→右鍵項目屬性
→在"調試"下勾選"啟用本機代碼調試"
→保存
→在代碼中的某處打上斷點,點擊"啟動"
→等程序運行到斷點處,點擊"調試"--"窗口"--"即時",在"即時窗口"中輸入如下命令加載SOS調試擴展
注意:由於第一次加載使用,程序運行到斷點處的時間可能會較長(幾分鐘)
→輸入如下命令查看進程內CLR托管的所有線程
□ SOS調試擴展的其它用處
使用SOS調試擴展還可以幫助我們做如下事情:
○ 查看對象銷毀
○ 查看內存洩漏
○ 查看對象所屬代
......
更多信息,在這裡。
如果只調試 T-SQL 數據庫對象,則不需要這些步驟。若要調試多層數據庫應用程序,則必須已經啟用對項目的調試。有關進一步信息,請參見如何:為項目啟用 SQL 調試。還必須已經為所選數據庫連接啟用了應用程序調試。有關更多信息,請參見如何:啟用多層調試。注意還必須使 CLR 程序集能夠在 SQL Server 上運行。有關更多信息,請在 SQL Server 2005 聯機叢書中查找支持 clr 的選項。注意一旦已經開始調試,這時再更改“服務器資源管理器”中的設置就已經太晚了。在“服務器資源管理器”中所做的更改將在下一個調試會話開始後才能生效。注意顯示的對話框和菜單命令可能會與“幫助”中的描述不同,具體取決於現用設置或版本。若要更改設置,請在“工具”菜單上選擇“導入和導出設置”。有關更多信息,請參見 Visual Studio 設置。啟用SQL/CLR 調試打開“服務器資源管理器”。 在“服務器資源管理器”中,右擊想要調試的連接並選擇“允許 SQL CLR 調試”。該設置將為服務器上的所有連接啟用 SQL CLR 調試。 這時將出現一個消息框,其中顯示警告:“SQL CLR 調試會導致服務器上的所有托管線程停止。要繼續嗎?”。調試 SQL CLR 數據庫對象時,如果中斷執行,將會中斷服務器上的所有線程,從而影響到其他用戶。因此,不應當在成品服務器上調試 SQL CLR 應用程序。 單擊“是”啟用調試。
進入Debug視圖,
左上角有一個Debug窗口,這個窗口是用來跟蹤調試時程序運行到哪行代碼了,按F6運行當前行,繼續按繼續運行;
右上角有一個Variables窗口,這個窗口是用來查看程序中變量或對象的值,就可以知道變量或對象的值是不是你想要的;
中間是代碼窗口,可以看到調試時程序是怎麼運行的;
最下面就是控制台,如果有打印的變量,就可以看到這個變量輸出的值;
調試看這些窗口就夠了。