簡體   English   中英

獲取ac#應用程序的方法調用堆棧

[英]Get method call stack of a c# application

有沒有辦法查看應用程序在運行時的方法調用堆棧? 我有一個第三方應用程序,它無法正常工作,我想看看以什么順序調用了哪些方法? 有沒有簡單的工具可以做到這一點? 除了螞蟻性能分析器外,我在Google中找不到很多東西,但這使我的問題不知所措,而且有些麻煩

您可以使用免費的PerfView ,並且可以在應用程序運行時為堆棧拍攝快照。 有時這些堆棧不完整,因為沒有足夠的符號信息,但是我在無法檢測應用程序的生產機器上使用它取得了很大的成功。

如果可以從C#代碼中進行操作,則足以使用StackTrace類並檢查StackFrame集合

var stackTrace = new StackTrace();
var frames = stackTrace.GetFrames();
foreach(var frame in frames)
{
   var methodDescription = frame.GetMethod();
   Console.WriteLine(methodDescription.Name);
}

框架中還有其他有用的屬性,例如文件名/數字/行等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM