與.call
似乎有可能調用本機功能(從來沒有真正嘗試過)。是否有類似的命令調用.NET函數mimic this result?是否有類似.NET的.call命令?
我正在尋找WinDbg解決方案。我知道Visual Studio具有「立即」窗口,其他工具如Hawkeye可以調用事件處理程序,也可能Snoop也可以調用方法。
與.call
似乎有可能調用本機功能(從來沒有真正嘗試過)。是否有類似的命令調用.NET函數mimic this result?是否有類似.NET的.call命令?
我正在尋找WinDbg解決方案。我知道Visual Studio具有「立即」窗口,其他工具如Hawkeye可以調用事件處理程序,也可能Snoop也可以調用方法。
簡短的回答是沒有。
問題是你不能在任何線程上運行託管代碼。即使你在一個好的線程中,它也可能很容易導致垃圾收集,終結器等問題。
在過去,我們已經嘗試創建一個本地入口點,然後調用託管代碼。它很混亂,並且在需要的時候沒有很好的工作。
編輯:
.call
作品推了一堆東西壓入堆棧,跳轉到入口點,然後繼續執行(所有當前選擇的線程上)。不幸的是,WinDbg本身並不知道託管代碼的任何內容,它如何與系統交互,或者如何安全地調用它。 Visual Studio調試器(這是一個不同的調試引擎)知道託管代碼以及如何幹淨地執行方法。
正如您爲Microsoft工作13年一樣,我認爲我可以立即接受這個答案,不再考慮這個問題。但是Visual Studio如何管理它呢? –
我可以知道爲什麼這個票被關閉嗎? –
可能是因爲投票的人不理解問題=)對於近親選民來說,嘗試讓OP改善他們認爲應該在實際投票結束前應該關閉的問題通常是一個好主意/禮節。 –