我最近从原生代码转换为托管代码编程。我正在使用.NET。
由于我已经使用Windbg很长一段时间了,我也希望将它用于托管代码调试。
我的搜索带我进入SOS(罢工之子)扩展,这似乎有一些强大的命令。
即使我理解在SOS中使用的大多数命令,我也无法找到正确逐步执行源代码的方法,就像我可以使用本机代码的p和t指令一样。
这使调试体验变得困难,我真的想在调试时逐步调试代码。
我对此进行了一些研究,发现使用6.7.05.0版本的Windbg可以实现这一点,其中MS似乎已经发布了集成的托管调试,但在后续版本中回滚。
尽管如此,我对通过SOS进行调试时能够直播“源代码”非常感兴趣。特别是因为它现在真的阻碍了我的调试体验。
有没有办法实现这个目标?
对于如何执行此操作(或实际解决方法)的任何帮助表示赞赏。
答案 0 :(得分:6)
Windbg在分析崩溃过程的小型转移时非常兴奋。但它不是托管调试器。
您可以通过在Visual Studio中加载SOS来获得蛋糕并吃掉它。这允许使用托管调试器中提供的常规调试工具,以及可以从SOS获得的诊断。一些限制适用:
开始调试并切换到Immediate Windows。输入.load sos.dll
,您会看到extension C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll loaded
之类的消息。键入!help并验证您是否看到列出的SOS命令。
答案 1 :(得分:5)
尝试使用!sosex.mt和!sosex.mgu。 'p'命令应该像宣传的那样工作。
答案 2 :(得分:0)
如果您想要将源代码连接到windbg,您可以按照以下步骤操作: