Как мне увидеть дизассемблирование машинного кода, сгенерированного .net JITer?
-
09-09-2019 - |
Вопрос
Как мне увидеть дизассемблирование машинного кода, сгенерированного .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.Разборка