我尝试在c#应用程序的源代码中使用WinDbg设置断点,但它不起作用。 当我使用WinDbg时,有没有办法在托管应用程序的源代码中设置断点?
Repro步骤如下:
1.制作一个简单的c#应用程序
class Proram
{
static void MyWrite(){
Console.WriteLine("test");
}
static void Main(string[] args){
Console.ReadLine();
MyWrite();
}
}
2.从WinDbg启动.NET应用程序
3.将其源文件打开到WinDbg中
4.Break执行(当 ReadLine()中的应用程序时)
5.设置符号路径并加载sos.dll
6.使用F9在 Console.WriteLine(“test”)设置断点
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 :(得分:1)
使用!sosex.mbp。例如,要在myapp.cs中断,第10行: !mbp myapp.cs 10
免费下载sosex答案 1 :(得分:1)
尝试:
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…