2016-12-20 6 views
0

Возможно ли увидеть сборку кода C/C++ в Microsoft Visual Studio? Могу ли я попросить просмотреть конкретный тип сборки (сборка MIPS)?Отображение сборки в Visual Studio

+1

Включает ли ваша версия Visual Studio компилятор C++, предназначенный для MIPS? В противном случае я не вижу, как вы ожидаете, что это сработает. Вы можете просто использовать компилятор [godbolt online compiler] (https://godbolt.org/). – Michael

+0

Вы можете просмотреть сборку своего текущего двоичного файла во время его отладки. установить точку останова, запустить программу и выбрать «перейти к разборке» в контекстном меню кода в текущей позиции). Но я сомневаюсь, что вы можете перекрестно скомпилировать с VS – Tommylee2k

ответ

2

Возможно ли увидеть сборку кода C/C++ в Microsoft Visual Studio?

Да, это так. Есть три основных способа:

  1. Ask компилятор испускать список сборки для каждой единицы перевода во время процесса компиляции.

    Это делается с использованием /FA switch, который имеет множество опций, доступных для настройки типа создаваемого списка.

    Вы можете настроить это в среде IDE, щелкнув правой кнопкой мыши по проекту в обозревателе решений и открыв параметры проекта. Затем вы найдете различные параметры, перечисленные в C/C++ → Файлы вывода → Сборка.

    Убедитесь, что эта опция включена для соответствующих параметров проекта; а именно для режима «Отладка» или «Отпуск»! Хотя вы можете настроить его для одного или обоих, моим советом было бы включить его только для режима «Release», так как просмотр кода без апробации в режиме отладки является неинтересной тратой времени.

  2. Отобразить фактический код сборки для бинарного файла, который в настоящее время отлаживается.

    Запуск скомпилированного приложения под отладчиком, а затем ворваться в него (либо путем нажатия клавиши определенной точки останова или произвольное нажатие на кнопку «Break» на панели инструментов, вы могли бы даже пошагово в программу с помощью отладчика). После выполнения сломана, щелкните правой кнопкой мыши в редакторе и выберите «Go To Ассамблеи). С помощью клавиатуры, это либо Ctrl + Alt + D или Alt + .

    Я держу окно «Разборка» состыкованным как одна из моих основных вкладок кода, поэтому он всегда присутствует, и я могу переключиться на него по требованию. Хотя это окно можно отображать только в режиме отладки, Visual Studio поддерживает это хорошо, так как оно поддерживает отдельные макеты окна режима «дизайн» и «отладка».

    (Обратите внимание, что это не работает для статических библиотек, поскольку они не могут быть выполнены до тех пор, пока они не будут связаны с исполняемым файлом. Для них вам нужно будет использовать подход № 1.)

  3. Статически разобрать свой двоичный код.

    Откройте командную строку Visual Studio (так, чтобы ваши переменные окружения были настроены правильно), а затем используйте параметр link12.exe /disasm.Например:

    link.exe /disasm /dump /linenumbers /out:MyApp.asm MyApp.exe 
    

Могу ли я попросить, чтобы увидеть конкретный тип сборки (MIPS сборки)?

Нет. Вы увидите только код сборки для процессора, который вы на самом деле нацеливаете при компиляции. Современные версии Visual Studio поддерживают только x86-32 (также известные как x86 или IA-32), x86-64 (также известные как x64 или AMD64) и ARM. Исторически сложилось так, что были и Alpha, PowerPC и, возможно, MIPS-версии компилятора. Если у вас есть один из них и вы можете создавать бинарные файлы MIPS, он будет поддерживать необходимые параметры.

Если у вас нет компилятора MIPS, то, очевидно, не будет никакого способа увидеть код сборки MIPS! Компилятор x86 не создает сборку MIPS!

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