2014-09-11 4 views
3

Есть ли в любом случае использование компилятора C, такого как GCC или clang, для генерации сборки, который имеет код C, отображаемый на выходе сборки (чтобы можно было увидеть, какой блок сборки представляет собой код C) в системе Linux? Я пытаюсь понять, что вывод части кода C с включенным O3, но у меня есть трудное время, так как мне не хватает знаний о сборке.Скомпонуйте исходный код C

+1

Это может быть то, что вы ищете: http://stackoverflow.com/questions/1289881/using-gcc-to-produce-readable-assembly –

+0

использовать опции '-S' с GCC, TCC, BCC –

+2

Самый быстрый способ - использовать [godbolt] (http://gcc.godbolt.org/#), он даже использует цвет для привязки кода C к сборке. Вам придется использовать '-x c', но это не слишком сложно. Раньше я бы связал вас с [компилятором и оценщиком Online C++] (http://stackoverflow.com/questions/3916000/online-c-compiler-and-evaluator), но, к сожалению, недавно был удален. –

ответ

0

Используйте команду -S с gcc, чтобы сгенерировать выходной файл сборки.

НКУ -S file.c

EDIT:

Если вы хотите, чтобы просмотреть как assembly выход и C код бок о бок, используйте gdb -tui a.out:

(gdb) расположение раздельное

Команда разделения разделов разбивает окно на две части - одна из них отображает исходный код, а другая - соответствующую сборку.

+0

OP хочет как C, так и сборку на выходе. '-S' не делает этого AFAIK. – Michael

+0

@Michael Okay добавил это к моему редактированию. –

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