用Call Stack看程式呼叫的堆疊來debug

  • 11272
  • 0
  • 2010-10-28

有時後在debug時會想看程式呼叫的順序

也就是類似exption中顯示的畫面

不然就要不斷的Find All Reference(shift + F12)然後去猜是哪一段呼叫目前在debug的method

有時後在debug時會想看程式呼叫的順序

也就是類似exption中顯示的畫面

就要不斷的Find All Reference(shift + F12)然後去猜是哪一段呼叫目前在debug的method

如果方案很小倒是很好解決,但是方案一大起來跑Find All Reference就很浪費時間了

因為Exception中有看到過Stack所以直覺就進MSDN中找Stack的資訊

馬上就發現可以使用StackTrace去處理了


	StackTrace _sTrace = new StackTrace();         
Console.WriteLine("method name : " + _sTrace.GetFrame(0).GetMethod().Name);

就這樣,夠簡單了吧

 

但是仔細想想,我只是想要debug阿

如果照這種做法不就變成要改code了

我必須在所有想要看呼叫順序的method中多加這段程式

debug完後如果沒有要刪掉這段程式,那又勢必要把輸出Stack的code寫成類似log4net的方式的去處理(看設定決定要不要輸出)

後來就想vs有沒有辦法直接秀出Stack的view呢

找了一下資料發現果然是有的

只要再debug時輸入Ctrl+Alt+C就可以呼叫出Call Stack視窗了

分享一下這個小技巧吧Open-mouthed smile

StackTrace 類別

How to: Use the Call Stack Window