2010-07-29 26 views
1

我想爲發生文件讀取時要跟蹤的mscorlib的System.IO.FileStream.Read()設置一個斷點。我沒有可執行文件的源代碼。我想從MSIL代碼的入口處啓動跟蹤。在Windgb中的System.IO.FileStream.Read()中設置斷點.Net

+0

什麼應用程序的類型?可執行文件,Web? – 2010-07-29 17:14:16

+0

你爲什麼需要它?您可以創建代碼訪問規則來保護可執行文件以讀取... – 2010-07-29 17:17:14

+0

它是可執行文件。我想知道它讀取的數據以及文件偏移量。 – user405961 2010-07-29 21:46:41

回答

2

以下是使用SOS擴展dll在任何託管方法中斷的步驟(我將使用System.IO.FileStream.Read()作爲示例)。

  1. 等待mscorwks.dll(或.NET 4中的clr.dll)加載。這可以通過 「.sxe ld mscorwks」完成。這會在mscorwks加載時破壞。
  2. 「.loadby sos mscorwks」。這將爲CLR版本加載正確的sos擴展名。
  3. 「!name2ee mscorlib.dll中System.IO.FileStream.Read」
  4. 你會得到一個方法描述符的方法你感興趣的內容。
  5. 傳遞MD值BPMD擴展命令「! bpmd「。

這應該把斷點。

如果你有興趣的任何文件加載,你可能有興趣在我寫了一篇關於這個問題的博客:http://gopikrishnam.wordpress.com/2010/07/16/who-is-loading-this-file/