如何查看.net JITer生成的机器代码的反汇编?

时间:2009-04-17 08:03:35

标签: .net visual-studio-2008 debugging disassembly

如何查看.net JITer生成的机器代码的反汇编? Show disassembly窗口菜单选项无法找到。甚至它的工具栏按钮也处于禁用状态。如果我没记错的话,确实可以看到反汇编但是必须采取一些技巧,不幸的是我不记得那个技巧是什么。有人可以在这里提供一些指示吗?

调试环境:VS2008(我猜你可以在WinDbg和一些调试器扩展(SOS.dll?)中看到反汇编没有太多痛苦嗯,现在我觉得VS2008中也可以使用相同的dll让我检查并取回如果我错了,请随时纠正我。)

3 个答案:

答案 0 :(得分:0)

在VS2008 Team System Developer Edition的C#项目中,Disassembly窗口正常工作。

实际上 - 有一件事情并没有像我希望的那样有效 - 我无法进入框架代码。我可能不知道在某个地方可能会让我这样做。但是我可以为我自己的代码解决这个问题。

您使用的是VS2008 Express吗?也许这有一些限制。

总是有线索(哎呀!)。

当然,在调试器下运行时,JITer将生成非优化代码。可能会有一些箍,你可以跳过来避免这种情况 - 就像在JIT完成你想要看的任何工作之后附加到这个过程。

答案 1 :(得分:0)

嗨,不幸的是show show window命令仍然无法正常工作,但你可以使用一个名为SOS.dll的调试器扩展dll来调试/反汇编.net代码这里有几个链接(注意这适用于VS2008和WinDbg)。 ..

1)MSDN: SOS Debugging Extension (SOS.dll)
2)Some general tips on using SOS with Windbg

答案 2 :(得分:0)

似乎对我来说工作正常。您是否启用了地址级调试? 工具|选项|调试|一般|启用地址级调试?

要获取反汇编窗口,请转到Debug | Windows |反汇编(我使用的是c#开发者资料)

或者,在命令窗口中,键入Debug.Dissassembly