是否有可能在windows store應用中獲取當前調用堆棧,而不會引發異常?獲取當前調用堆棧
我發現this answer,但它不適用於Windows應用商店。
爲什麼我需要這個
我需要調用堆棧,因爲我有一個DirectX紋理內存泄漏。
我想在分配它們時將調用堆棧附加到我的紋理上。在使用某些程序後,我會打印尚未釋放的所有紋理的調用堆棧。
應該很容易看出我忘記釋放紋理的位置。
是否有可能在windows store應用中獲取當前調用堆棧,而不會引發異常?獲取當前調用堆棧
我發現this answer,但它不適用於Windows應用商店。
爲什麼我需要這個
我需要調用堆棧,因爲我有一個DirectX紋理內存泄漏。
我想在分配它們時將調用堆棧附加到我的紋理上。在使用某些程序後,我會打印尚未釋放的所有紋理的調用堆棧。
應該很容易看出我忘記釋放紋理的位置。
有沒有文件的方式獲得訪問當前堆棧像存在於.NET中(如與StackFrame
)。
您可以嘗試通過創建一個記錄操作的函數來自行維護日誌或記錄。這將需要粘貼的一點點進入功能:
[Conditional("DEBUG")]
void Log(string message,
[CallerMemberName] string member = "",
[CallerFilePath] string path = "",
[CallerLineNumber] int line = 0) {
Debug.WriteLine(string.Format("{0}\t{1}:{3} ({2}) ",
message, member, path, line));
}
使用...
Log("hello!");
將產生:
hello! MainPage_Loaded:45 (c:\Dev\Projects\Win8AppTest\MainPage.xaml.cs)
上述功能使用幾個你可以使用相對較新的屬性。例如:CallerMemberName
。該函數獲取調用者的方法或屬性名稱。
Conditional
屬性只是說只在DEBUG編譯中編譯函數。
我讀過這些,但忘記了。該工作,謝謝! – thumbmunkeys
http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem –