2011-08-25 48 views
1

是否可以反汇编/检查由.Net JITer/ngen生成的本地代码? (仅用于学术目的)检查/反汇编.Net原始图像

在试图回答this question时,我开始对JITer会执行什么样的优化感兴趣 - 而不是疯狂地猜测我真的很希望能够看到自己真正发生的事情。

到目前为止,我:

  1. 安装使用ngen我的候选组件的原始图像(就是这个潜在的不同JIT编译器的输出端输出?)
  2. 复制的原生图像出了GAC

,但现在我有点卡住 - 据我知道.NET程序集是在portable execuable格式,但我可能会使用普通工具拆卸这样的文件(objdump的)只是barf:

C:\Users\justin\Desktop>objdump -d ConsoleApplication1.ni.exe 
objdump: ConsoleApplication1.ni.exe: File format not recognized 

以这种方式窥视本地图像是否可行?如果没有,我可以用一些替代方法来满足我的好奇心吗? (例如在正在运行的过程中拆卸代码)

+1

当我询问[有没有办法看到JITter为给定的C#/ CIL生成的本机代码?](http://stackoverflow.com/questions/1945719/is-there-a-看看这个本地代码生成的-jitter-for-c-cil) – AakashM

+0

你不能用windbg或者dumpbin来看看吗? –

+0

@AakashM非常有用,可能比检查原生图像更可靠! – Justin

回答

1

过去,在尝试这类事情时,我已经用windbg和dumpbin取得了一些成功。