查看编译vs2010 c# .net生成的汇编代码

本文关键字:汇编 代码 net 编译 vs2010 | 更新日期: 2023-09-27 18:12:17

我在这里找到了一个线程,详细介绍了如何查看vsc++生成的汇编代码,但我似乎找不到一种方法来查看c# .net代码的汇编?

这可能吗?它似乎不像c++版本那么简单。

提前感谢

查看编译vs2010 c# .net生成的汇编代码

您可以看到通过使用诸如Reflector或ILDasm之类的拆解器编译. net代码库而产生的IL的反汇编版本。

显示代码被编译成的中间语言。

. net程序集(与汇编代码不同,与相同)稍后会被编译为本机代码,尽管您也可以使用ngen.exe提前生成本机代码。

。.NET语言不直接通过编译产生ASM,而是产生CIL,它由。NET运行时使用JIT编译解释为汇编指令。网址:http://en.wikipedia.org/wiki/Common_Intermediate_Language

如果可以使用NGEN从c#生成本机二进制文件来生成特定于机器的二进制文件,这通常用于改善应用程序启动时间,但您最好查看IL。

您可以将c#编译器或任何。net EXE/DLL的结果打开,例如在Reflector(商业)或ILDasm(免费)中-这些将显示IL代码。

另一个选择是在VS中调试结果-调试器也可以显示IL代码。

一些链接:

  • http://www.reflector.net/
  • http://msdn.microsoft.com/en-us/library/f7dy01k1%28v=VS.100%29.aspx

如果你真的想要汇编代码(类似于c++的结果),那么你可以使用http://msdn.microsoft.com/en-us/library/6t9t5wcf.aspx与任何反汇编器。

Reflector很好,但是被RedGate接管了,不再是免费的。
但是Telerik有一个很棒的免费工具,叫做JustDecompile (http://www.telerik.com/products/decompiler.aspx)

它甚至会为程序集创建一个Visual Studio解决方案。

我们仍然在讨论IL拆卸。如果您想查看本机代码,我相信您可以在Visual Studio调试器中显示。