有什麼辦法來列表(在VS秀,寫入文件)所有呼叫者(對象,函數)函數的程序運行時?可能使用調試器?如何在運行時列出函數的所有調用?
我需要記錄所有呼叫(包括用戶)從推出方案到其終止函數的。
一個簡單的掃描的源代碼或二進制並不做工作因爲程序可以作爲接收請求來調用所希望的功能的服務器操作的。
如果Visual Studio不提供此功能,是否有解決此問題的其他解決方案?
有什麼辦法來列表(在VS秀,寫入文件)所有呼叫者(對象,函數)函數的程序運行時?可能使用調試器?如何在運行時列出函數的所有調用?
我需要記錄所有呼叫(包括用戶)從推出方案到其終止函數的。
一個簡單的掃描的源代碼或二進制並不做工作因爲程序可以作爲接收請求來調用所希望的功能的服務器操作的。
如果Visual Studio不提供此功能,是否有解決此問題的其他解決方案?
VS探查器工具也會對您有所幫助,您可以選擇「CPU採樣」方法。
它完成後,你可以選擇 「主叫/被叫」。
參考:
https://docs.microsoft.com/en-us/visualstudio/profiling/caller-callee-view
你可以將它們輸出到文件嗎? – Shiro
@ Shiro,是的,我們可以導出報告。我編輯我的答案。 –
如果您的程序是一個.NET應用程序,您可以使用我的Runtime Flow工具在程序運行時查看所有函數的調用者。
如果您確保功能從不內聯,有可能是一個API來看看在一個點的調用堆棧,那麼你可能能夠從堆棧中找出調用者 – Justin
但是如果可能的話,我不想做是手動的。 – Shiro
您可以使用堆棧指針來獲取返回地址。問題是函數名稱從發佈可執行文件中刪除。 –