Как просмотреть скомпилированный машинный код или байт-код для функции C ++ в Visual Studio 2010? - PullRequest
14 голосов
/ 25 августа 2011

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

Ответы [ 3 ]

25 голосов
/ 25 августа 2011

В 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, чтобы делать скриншоты.: -)

7 голосов
/ 25 августа 2011

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

Для сборок .NET есть ildasm.

1 голос
/ 25 августа 2011

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

...