C# 如何在VisualStudio(而不是MSIL)中查看C的汇编代码?

C# 如何在VisualStudio(而不是MSIL)中查看C的汇编代码?,c#,visual-studio-2010,C#,Visual Studio 2010,在8:20时,将显示C代码的装配代码。它没有告诉如何显示它我只听到按F11键,但它对我不起作用,可能对Visual Studio的快速版不起作用?在菜单中选择Debug-Windows-Assembly。如果Express Edition中没有该菜单,那么是的,它不受支持。如前所述,您应该运行代码并在断点处停止,然后调试->Windows->反汇编或Ctrl+Alt+D 如果没有,则应打开“选项”对话框,并将“地址级别调试”设置为“已启用” 您正在查看的窗口是调试->窗口->反汇编 您必须调试某

在8:20时,将显示C代码的装配代码。它没有告诉如何显示它我只听到按F11键,但它对我不起作用,可能对Visual Studio的快速版不起作用?

在菜单中选择Debug-Windows-Assembly。如果Express Edition中没有该菜单,那么是的,它不受支持。

如前所述,您应该运行代码并在断点处停止,然后调试->Windows->反汇编或Ctrl+Alt+D

如果没有,则应打开“选项”对话框,并将“地址级别调试”设置为“已启用”

您正在查看的窗口是调试->窗口->反汇编

您必须调试某些内容才能使其出现,并且在连接调试器时,您可以按Ctrl+Alt+D来访问它


您不能在任何其他时间查看汇编代码机器代码,因为它不存在。它作为机器代码存在的唯一时间是在加载和运行时。Net不编译为机器代码,而是编译为MSIL,因此它必须在及时出现之前进行JIT编译。这只有在它运行时才会发生。

所有这些答案都有问题

如果您的MSVC版本支持它,那么您确实可以在调试/反汇编窗口中看到汇编程序指令,这些指令仅在主动调试应用程序时可用

但是,jit编译器会在您尝试在调试器下运行它时进行检测。因此,即使您正在进行发布构建,它仍然不会与从命令行运行的发布构建完全相同

从好的方面来说,它将更容易调试。另一方面,它使.Net编译器看起来非常糟糕,因为代码没有实际运行时的效率高

我使用了一个技巧来查看“真正的”汇编程序输出。在MSVC中,使用CTRL-F5 Start启动应用程序,无需调试。然后使用调试/附加到进程以。。。嗯。。。附加到进程

现在,您可以使用调试器中断进程并检查“真实”asm输出。事实上,调试将更加困难,因为代码已经进行了更多的优化,但是反汇编窗口将让您更好地了解jit编译器的工作情况


我相信NGEN也有办法做到这一点,也许吧?但仅仅是连接对我来说效果很好。

看起来它不受支持。是否有一种方法将汇编代码输出到一个文件,与我可以用VisualC++所使用的方法一样?@ MaMoudJT1使用在C:\程序文件中找到的ILDASM x86 \微软SDKS \ Windows \VAX版本Hea\bin \NETFX。这里的一些工具\ILDAS.ExeIdMASM将显示MSIL,而不是显示程序集。编译器命令行无法执行此操作,因为此时它不会生成程序集。ngen.exe实际上会生成程序集,所以也许它可以做到?使用调试器中断进程是什么意思?