Как мне увидеть дизассемблирование машинного кода, сгенерированного .net JITer?

StackOverflow https://stackoverflow.com/questions/759462

Вопрос

Как мне увидеть дизассемблирование машинного кода, сгенерированного .net JITer?Пункт меню "Показать окно разборки" нигде не найден.Даже кнопка панели инструментов для этого находится в отключенном состоянии.Если я правильно помню, разборку действительно можно увидеть, но нужно прибегнуть к какому-то трюку, к сожалению, я не помню, что это был за трюк.Может кто-нибудь, пожалуйста, дать здесь несколько советов?

Среда отладки:VS2008 (Я думаю, вы можете увидеть разборку без особых усилий в WinDbg и некотором расширении отладчика (SOS.dll ?) Хм, теперь я думаю, что та же самая библиотека dll также может использоваться в VS2008. Позвольте мне проверить и вернуться к вам.Пожалуйста, не стесняйтесь поправлять меня, если я ошибаюсь.)

Это было полезно?

Решение 2

Привет, к сожалению, команда show debug window все еще не работает, но вы можете обойтись dll расширения отладчика под названием SOS.dll для отладки/дизассемблирования кода .net, вот несколько ссылок (обратите внимание, что это работает с VS2008 и WinDbg)...

1) MSDN:Расширение отладки SOS (SOS.dll)
2) Несколько общих советов по использованию SOS с Windbg

Другие советы

Окно дизассемблирования у меня работает нормально в проекте C# в VS2008 Team System Developer Edition.

На самом деле есть одна вещь, которая работает не так, как я надеялся: я не могу войти в код Framework.Возможно, где-то есть какие-то настройки, позволяющие мне это сделать, я не знаю.Но я прекрасно могу выполнить дизассемблирование своего собственного кода.

Вы используете VS2008 Express?Возможно, это имеет какое-то ограничение.

Всегда есть шнур (угу!).

Конечно, JITer будет генерировать неоптимизированный код при запуске под отладчиком.Чтобы избежать этого, могут быть некоторые препятствия, например, присоединение к процессу после того, как JIT выполнил свою работу для всего, что вы хотите просмотреть.

Кажется, у меня все работает нормально.Включена ли у вас отладка на уровне адреса?Инструменты | Параметры | Отладка | Общие | Включить отладку на уровне адреса?

Чтобы открыть окно разборки, перейдите в раздел Debug | Windows | Разборка (я использую профиль разработчика c #).

Или в окне командной строки введите Debug.Разборка

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top