亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何毫無例外地在.NET中打印當前的堆棧跟蹤?

如何毫無例外地在.NET中打印當前的堆棧跟蹤?

慕斯709654 2019-11-25 15:04:18
我有一個常規的C#代碼。我也不例外。我想以編程方式記錄當前堆棧跟蹤以進行調試。例:public void executeMethod() {    logStackTrace();    method();}
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

看一下System.Diagnostics名稱空間。里面有很多東西!


System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace();

兜一圈學習引擎蓋下的情況,這真的很好。


我建議您看看可以實現您的目的的日志記錄解決方案(例如NLog,log4net或Microsoft模式和實踐企業庫)。祝你好運!


查看完整回答
反對 回復 2019-11-25
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

一種替代方法System.Diagnostics.StackTrace是使用System.Environment.StackTrace,它返回堆棧跟蹤的字符串表示形式。


另一個有用的選項是在Visual Studio中使用$CALLER和$CALLSTACK 調試變量,因為可以在運行時啟用它,而無需重建應用程序。


查看完整回答
反對 回復 2019-11-25
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

您也可以在Visual Studio調試器中執行此操作,而無需修改代碼。

  1. 在要查看堆棧跟蹤的位置創建一個斷點。

  2. 右鍵單擊斷點,然后在VS2015中選擇“操作...”。在VS2010中,選擇“當被點擊時...”,然后啟用“打印消息”。

  3. 確保選擇“繼續執行”。

  4. 輸入一些您想打印的文字。

  5. 在任何要查看堆棧跟蹤的位置添加$ CALLSTACK。

  6. 在調試器中運行程序。

當然,如果您在另一臺計算機上運行代碼,這無濟于事,但是能夠自動吐出堆棧跟蹤信息而又不影響發行代碼或什至無需重啟程序都非常方便。


查看完整回答
反對 回復 2019-11-25
  • 3 回答
  • 0 關注
  • 754 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號