【发布时间】:2011-08-25 14:42:32
【问题描述】:
是否可以反汇编/检查 .Net JITer / ngen 生成的本机代码? (纯学术目的)
在尝试回答 this question 时,我对 JITer 会执行什么样的优化产生了兴趣 - 而不是疯狂地推测,我真的很想亲眼看看到底发生了什么。
到目前为止,我已经:
- 使用ngen 安装了我的候选程序集的本机映像(此输出可能与 JIT 编译器的输出不同吗?)
- 从 GAC 中复制了本机映像
但现在我有点卡住了——据我所知 .Net 程序集是 portable execuable 格式,但我可能用来反汇编这样一个文件 (objdump) 的普通工具只是 barf:
C:\Users\justin\Desktop>objdump -d ConsoleApplication1.ni.exe
objdump: ConsoleApplication1.ni.exe: File format not recognized
以这种方式窥视原生图像是否可行?如果做不到这一点,是否有一些替代方法可以满足我的好奇心? (例如在正在运行的进程中反汇编代码)
【问题讨论】:
-
你不能用windbg或dumpbin看看吗?
-
@AakashM 非常有用,可能比检查原生图像更可靠!
-
没问题 :) 实际上,我什至可以将其添加为答案 :)
标签: .net disassembly ngen