2010-07-29 28 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/