【问题标题】:Is it possible to force JIT to compile an assembly and get asm code?是否可以强制 JIT 编译程序集并获取 asm 代码?
【发布时间】:2012-06-20 14:26:24
【问题描述】:

有没有办法让.NET编译的exe程序集被反汇编成纯汇编程序?也许有一些内置工具可以实现这一点。

我知道 C# 代码被编译成 IL,然后在 Runtime JIT 中编译它的机器代码。问题是我能否以某种方式强制 jit 编译为程序集并将此输出用于文本文件。还是我很困惑,我对 CLR 工作原理的理解是错误的?

【问题讨论】:

  • 整件事,还是只是一个功能?当我只想查看一个函数的代码时,我确保它会引发异常,然后在它崩溃时附加调试器(从附加的调试器开始会导致蹩脚的代码生成)。然后切换到内置的反汇编视图。

标签: .net clr .net-assembly


【解决方案1】:

你想用它做什么?我不认为你可以直接做到这一点。

假设您已使用Ngen 创建本机图像,本机图像缓存应位于某个路径,例如

C:\Windows\assembly\NativeImages_v4.0.30319_32\

确切的路径取决于框架版本以及可能的其他一些因素,我认为您不能保证它会一直存在。如果您在那里找到您的本机映像,您也许可以使用反汇编程序来查看机器代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 2023-03-25
    相关资源
    最近更新 更多