当我使用WinDbg时,是否可以在托管应用程序的源代码处设置断点?

当我使用WinDbg时,是否可以在托管应用程序的源代码处设置断点?,windbg,sos,Windbg,Sos,我试图在c#应用程序的源代码中使用WinDbg设置断点,但没有成功。 当我使用WinDbg时,有没有办法在托管应用程序的源代码处设置断点 复制步骤如下所示: 1.制作一个简单的c#应用程序 class Proram { static void MyWrite(){ Console.WriteLine("test"); } static void Main(string[] args){ Console.ReadLine(); MyWrite();

我试图在c#应用程序的源代码中使用WinDbg设置断点,但没有成功。 当我使用WinDbg时,有没有办法在托管应用程序的源代码处设置断点

复制步骤如下所示:

1.制作一个简单的c#应用程序

class Proram
{
  static void MyWrite(){
      Console.WriteLine("test");
  }
  static void Main(string[] args){
      Console.ReadLine();
      MyWrite();
  }
 }
2.从WinDbg启动.NET应用程序
3.将其源文件打开到WinDbg
4.中断执行(应用程序处于ReadLine()状态时)
5.设置符号路径并加载sos.dll
6.使用F9在Console.WriteLine(“测试”)上设置断点
7.执行“g”命令
8.发生错误

Unable to insert breakpoint 0 at <address>, Win32 error 0x998 
     "Invalid access to memory location."
bp0 at <address> failed
WaitForEvent failed
无法在0处插入断点,Win32错误0x998
“对内存位置的访问无效。”
bp0 at失败
WaitForEvent失败

我有应用程序的私有符号,所以我不认为这是一个与符号相关的问题。

使用!sosex.mbp。例如,要在myapp.cs处中断,第10行: !mbp myapp.cs 10

您可以从以下网址免费下载sosex:

0:000> sxe ld clrjit.dll

ModLoad: 72ea0000 72f1d000   C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll

0:000> .loadby sos clr

0:000> !bpmd SslStreamTest.exe SslStreamTest.Program.Main

Found 1 methods in module 00bb2edc…