2012-06-20 3 views
4

Есть ли способ получить сборку exe сборника .NET, будучи разобранным на чистый ассемблер? Возможно, есть некоторые встроенные инструменты для достижения этого.Можно ли заставить JIT скомпилировать сборку и получить код asm?

Я знаю, что код C# скомпилирован в IL, а затем в Runtime JIT компилирует его машинный код. Вопрос в том, могу ли я как-то заставить jit скомпилировать сборку и взять этот вывод для текстового файла, например. Или я смущен, и мое понимание того, как работает CLR, неверно?

+0

Все это, или только одна функция? Когда я просто хочу посмотреть на код для одной функции, я убеждаюсь, что она генерирует исключение, а затем прикладывает отладчик при его сбоях (начиная с прилагаемого отладчика, вызывает хромой код). Затем просто переключитесь на демонстрационный вид, который встроен. – harold

ответ

4

Что вы хотите с этим делать? Я не думаю, что вы можете сделать это напрямую.

Предполагая, что вы использовали Ngen для создания образа родной, родной кэш образа должен быть в каком-то пути, как

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

Точный путь зависит от версии базы и, возможно, некоторых других факторов, и я не что у вас есть гарантия, что он всегда будет там. Если вы найдете свой собственный образ, вы можете использовать дизассемблер для просмотра машинного кода.

Смежные вопросы