談論如何調用Visual Studio繼承樹窗口
經過長時間學習調用Visual Studio繼承樹窗口,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西。寫程序離不開調試,調試離不開理清程序的執行流程。在以前的Visual Studio版本中,我們幾乎都是調試的時候通過調用棧來查找函數間的調用關系,幫助調試的。調用棧雖然好用,但是只能在調試時使用,同時也只能串行,只有一條執行路徑。另外,隨著現代應用程序越來越復雜,調用棧已經無法滿足我們分析程序邏輯的需要。所以在Visual Studio 2010中,微軟為我們提供了新的程序邏輯分析工具:調用繼承樹(Call Hierarchy)窗口。
#t#體驗調用Visual Studio繼承樹窗口給我們帶來的便利,我們可以打開Visual Studio 2010 CTP虛擬機中自帶的示例項目DinnerNow – Management。在解決方案瀏覽器中,我們雙擊PSWorkflowMonitor.cs這個文件,將其在代碼編輯器中打開。然后找到其中的 LoadWorkflowInstance函數,在這個函數上右鍵單擊,在彈出的上下文菜單中選擇“View Call Hierarchy”:
這樣,我們就可以打開LoadWorkflowInstance函數的調用Visual Studio繼承樹窗口:
在調用Visual Studio繼承樹窗口中,我們可以像“爬樹”一樣,在這棵調用繼承樹的各個節點和對應的代碼之間任意跳轉:
◆跳轉到代碼
在調用Visual Studio繼承樹窗口中,我們可以在函數上點擊右鍵,選擇彈出菜單中的“Go To Definition”,就可以直接跳轉到相應的代碼。
同時我們可以注意到調用繼承窗口的右邊是“Detail Pane”,其中顯示了當前選中函數所有的調用位置,我們只要雙擊其中的調用記錄,就可以跳轉到相應的函數調用位置。
◆創建或者刪除調用繼承樹
當程序比較復雜的時候,我們的調用繼承樹也會“枝繁葉茂”,這樣不利于我們的分析。在這種情況下,我們就可以把一個根節點中我們感興趣的子節點設置為新的根節點,這樣可以簡化調用繼承的深度,更加利于我們的分析。
◆改變調用繼承搜索的范圍
默認情況下,調用繼承會搜索整個解決方案中的調用情況,如果我們的解決方案比較復雜,這就會使得調用繼承樹非常復雜,引入很多意義不大的調用關系。為了簡化調用繼承樹,我們可以改變調用繼承的搜索范圍,將其限制在解決方案,當前項目或者當前文檔。