Подтвердить что ты не робот

Как просмотреть скомпилированный машинный код или байтовый код для функции С++ в Visual Studio 2010?

Каков наилучший (самый быстрый) способ просмотра кода, сгенерированного компилятором из моих файлов? Я использую в основном С++, но решение, которое работает для языков .NET, также очень приветствуется.

4b9b3361

Ответ 1

В Visual Studio перейдите на страницы свойств для своего проекта, затем перейдите к C/C++ → Output Files → Assembler Output. Он должен выглядеть примерно так:

property page

Обратите внимание на соответствующие переключатели компилятора, все варианты /FA.

  • /FA: Листинг с листингом
  • /FAcs: сборка, машинный код и источник
  • /FAc: Сборка с машинным кодом
  • /FAs: Сборка с исходным кодом

Под опцией "Ассемблерный выход" есть опция "Расположение списка ASM". Это эквивалентно переключателю /FA (заглавная буква!), И он устанавливает путь к файлу вывода.

Вы также можете посмотреть сборку во время отладки (в точке останова), в комплекте с соответствующим исходным кодом, щелкнув правой кнопкой мыши текущую строку в текстовой области исходного файла и нажав "Перейти к разборке".

gotodisassembly

Он перейдет к сборке в строке, на которую вы щелкнули правой кнопкой мыши на отдельной вкладке. Список будет напоминать следующее:

enter image description here

Да, я знаю, скриншоты взяты не из Visual Studio 2010, но шаги и общий вид одинаковы. У меня просто нет прямого доступа к VS2010 для создания скриншотов.: -)суб >

Ответ 2

Для проекта С++ скомпилируйте /FA, чтобы получить список сборок.

Для сборщиков .NET, ildasm.

Ответ 3

Для .NET вы можете использовать инструмент ildasm, который поставляется с фреймворком для просмотра ИЛ.