如何制作ReSharper Ultimate反编译堆栈帧?

时间:2016-09-14 13:59:31

标签: c# .net visual-studio visual-studio-2013 resharper

我知道ReSharper Ultimate在Visual Studio中添加了一个可以反编译外部代码的插件,因为我之前曾多次对各种事物的反编译失误而没有意义。但是现在我处于一种实际上有用的情况,我实际上无法让反编译视图显示出来。

我正在调试Visual Studio扩展,并且我遇到了一个操作,尝试实例化表单设计器会导致NullReferenceException数十个堆栈帧(以及多个Managed To Native Transition往返)超出最后一个从我的代码打电话。我可以在调试器中加载符号并检查调用堆栈,它似乎正在炸毁与名称解析相关的东西,但名称是框架中类型的名称,而不是我自己的代码,所以我不知道发生了什么或如何解决它。

能够使用我知道我有可用的这个反编译功能来查看这个函数的内幕并弄清楚出了什么问题肯定会很好,但不管是什么菜单我看看我无法弄清楚如何让它给我一个外部堆栈框架的反编译。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:3)

ReSharper不会从调用堆栈窗口反编译。我想最重要的原因是你无法调试该代码或设置断点,因为它只是反编译代码,并且不包含调试信息。我认为如果它从调用堆栈窗口反编译,你也希望调试工作。

相反,您可以使用dotPeek作为符号服务器。它将启动HTTP服务器并侦听程序集的调试文件请求。如果它已加载程序集,它将对其进行反编译,生成.pdb文件并将其提供给Visual Studio。然后,您可以双击调用堆栈中的帧,然后导航到刚刚反编译的源。

你可以read more about it in the documentation