Можно ли дизассемблировать/проверить нативный код, созданный .Net JITer/ngen? (в чисто академических целях)
Пытаясь ответить на этот вопрос, я стал заинтригован тем, какую оптимизацию будет выполнять JITer - вместо того, чтобы дико спекулировать, я действительно хотел бы иметь возможность увидеть своими глазами, что на самом деле происходит.
До сих пор я:
- Установил собственный образ моей сборки-кандидата, используя ngen (отличается ли вывод этого от вывода JIT-компилятора?)
- Скопировал собственный образ из GAC
Но теперь я немного застрял - насколько мне известно, сборки .Net находятся в переносимом исполняемом файле, но обычные инструменты, которые я мог бы использовать для дизассемблирования такого файла (objdump), просто блюют:
C:\Users\justin\Desktop>objdump -d ConsoleApplication1.ni.exe
objdump: ConsoleApplication1.ni.exe: File format not recognized
Можно ли таким образом заглянуть внутрь нативного образа? В противном случае, есть ли какой-то альтернативный способ, которым я мог бы удовлетворить свое любопытство? (например, дизассемблирование кода в запущенном процессе)