在.Net的mscorlib的System.IO.FileStream.Read()处的Windgb中设置断点

在.Net的mscorlib的System.IO.FileStream.Read()处的Windgb中设置断点,.net,windbg,.net,Windbg,我想为mscorlib的System.IO.FileStream.Read()设置一个断点,以便在读取文件时进行跟踪。我没有可执行文件的源代码。我想从MSIL代码的入口点启动跟踪。您可以使用!BPMD命令(SOS的一部分),用于在托管方法上设置断点 以下是使用SOS扩展dll在任何托管方法上中断的步骤(我将使用System.IO.FileStream.Read()作为示例) 等待mscorwks.dll(或.NET 4中的clr.dll)加载。这可以通过 “.sxe ld mscorwks”。这

我想为mscorlib的System.IO.FileStream.Read()设置一个断点,以便在读取文件时进行跟踪。我没有可执行文件的源代码。我想从MSIL代码的入口点启动跟踪。

您可以使用
!BPMD
命令(SOS的一部分),用于在托管方法上设置断点

以下是使用SOS扩展dll在任何托管方法上中断的步骤(我将使用System.IO.FileStream.Read()作为示例)

  • 等待mscorwks.dll(或.NET 4中的clr.dll)加载。这可以通过 “.sxe ld mscorwks”。这将在加载mscorwks时中断
  • “.loadby sos mscorwks”。这将为CLR版本加载正确的sos扩展
  • “!name2ee mscorlib.dll System.IO.FileStream.Read”
  • 您将获得感兴趣的方法的方法描述符
  • 将md值作为“!bpmd”传递给bpmd扩展命令
  • 这将设置断点


    如果您对任何文件加载感兴趣,您可能会对我写的关于这个问题的博客感兴趣:

    什么类型的应用程序?可执行文件,Web?为什么需要它?您可以创建代码访问规则来保护可执行文件以供读取…它是可执行的。我想知道它读取什么数据,以及文件的哪个偏移量。