如何制作 ReSharper Ultimate 反编译堆栈帧?
How do I make ReSharper Ultimate decompile stack frames?
我知道 ReSharper Ultimate 在 Visual Studio 中放入了一个可以反编译外部代码的插件,因为我之前几次无意中反编译了各种东西。但现在我处于这样一种情况,它实际上很有用,但我实际上无法显示反编译视图。
我正在调试一个 Visual Studio 扩展,并且我 运行 进入了一个尝试实例化表单设计器的操作导致 NullReferenceException
数十个堆栈帧(和多个Managed To Native Transition 往返)超出我的代码的最后一次调用。我可以在调试器中加载符号并检查调用堆栈,它似乎在与名称解析相关的东西上爆炸,但名称是框架中类型的名称,而不是我自己的代码,所以我不知道发生了什么事或如何解决它。
如果能够使用 我知道我可以使用 的反编译功能来查看此函数的幕后情况并找出问题所在,那肯定很好,但是无论我浏览什么菜单,我都无法弄清楚如何让它给我一个外部堆栈框架的反编译。
有人知道怎么做吗?
ReSharper 不会从调用堆栈反编译 window。我想最大的原因是你无法调试该代码或设置断点,因为它只是反编译代码,不包含调试信息。而且我认为如果它确实从调用堆栈中反编译 window,你会期望调试也能正常工作。
相反,您可以使用 dotPeek 作为符号服务器。它将启动一个 HTTP 服务器并侦听对程序集调试文件的请求。如果它加载了程序集,它将对其进行反编译,生成一个 .pdb 文件并将其提供给 Visual Studio。然后,您将能够双击调用堆栈中的帧,并导航到刚刚反编译的源代码。
我知道 ReSharper Ultimate 在 Visual Studio 中放入了一个可以反编译外部代码的插件,因为我之前几次无意中反编译了各种东西。但现在我处于这样一种情况,它实际上很有用,但我实际上无法显示反编译视图。
我正在调试一个 Visual Studio 扩展,并且我 运行 进入了一个尝试实例化表单设计器的操作导致 NullReferenceException
数十个堆栈帧(和多个Managed To Native Transition 往返)超出我的代码的最后一次调用。我可以在调试器中加载符号并检查调用堆栈,它似乎在与名称解析相关的东西上爆炸,但名称是框架中类型的名称,而不是我自己的代码,所以我不知道发生了什么事或如何解决它。
如果能够使用 我知道我可以使用 的反编译功能来查看此函数的幕后情况并找出问题所在,那肯定很好,但是无论我浏览什么菜单,我都无法弄清楚如何让它给我一个外部堆栈框架的反编译。
有人知道怎么做吗?
ReSharper 不会从调用堆栈反编译 window。我想最大的原因是你无法调试该代码或设置断点,因为它只是反编译代码,不包含调试信息。而且我认为如果它确实从调用堆栈中反编译 window,你会期望调试也能正常工作。
相反,您可以使用 dotPeek 作为符号服务器。它将启动一个 HTTP 服务器并侦听对程序集调试文件的请求。如果它加载了程序集,它将对其进行反编译,生成一个 .pdb 文件并将其提供给 Visual Studio。然后,您将能够双击调用堆栈中的帧,并导航到刚刚反编译的源代码。