Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety k gosam.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
4.66 Mб
Скачать

3. Инструментальные средства Linux. Краткая характеристика

Компилятор GCC - это свободно доступный оптимизирующий компилятор для языков C, C++, Ada 95, а также Objective C. Его версии применяются для различных реализаций Unix и позволяют генерировать код для множества процессоров. gcc можно использовать и для компиляции программ в объектные модули, и для компоновки полученных модулей в единую исполняемую программу. Компилятор способен анализировать имена файлов, передаваемые ему в качестве аргументов, и определять, какие действия необходимо выполнить. Файлы с именами типа name.cc (или name.C) рассматриваются, как файлы на языке C++, а файлы вида name.o считаются объектными (т.е. внутримашинным представлением).

Библиотекой называют набор объектных файлов, сгруппированных в единый файл и проиндексированных.Язык C не предоставляет встроенных возможностей для выполнения таких распространенных операций, как ввод/вывод, управление памятью, работа со строками, и т.п. Эти возможности определены в стандартной библиотеке, которая компонуется в вашу программу. Когда команда компоновки обнаруживает некоторую библиотеку в списке объектных файлов для компоновки, она проверяет, содержат ли уже скомпонованные объектные файлы вызовы для функций, определенных в одном из файлов библиотек. Если такие обращения к функциям найдены, соответствующие вызовы связываются с кодом объектного файла из библиотеки.

Ассемблеры gas и nasmИспользование языка ассемблера в Linux происходит гораздо реже, чем, например, в DOS. Драйверы устройств в Linux гораздо чаще пишутся на языке C, а затем обрабатываются оптимизирующим компилятором gcc. Основная причина, по которой используется ассемблер в Linux ‑ это написание очень небольших по размеру программ, которые не зависят от системных библиотек. Такие программы особенно нужны для встраиваемых систем, где объемы запоминающих устройств обычно невелики.

GAS - GNU Assembler. GAS был разработан для поддержки 32-битных компиляторов Unix.

Ассемблер NASM разрабатывается в рамках проекта The Netwide Assembler, и представляет собой мощный ассемблер на базе i386, написанный на C, который построен по модульному принципу и обеспечивает поддержку практически всех известных синтаксисов и форматов объектных файлов. NASM поставляется с дизассемблером NDISASM.

Отладчиком называется программа, которая выполняет внутри себя другую программу. Основное назначение отладчика ‑ дать возможность пользователю в определенной степени осуществлять контроль за выполняемой программой, т.е. определять, что происходит в процессе ее выполнения. Наиболее известным отладчиком для Linux является программа GNU gdb, которая содержит множество полезных возможностей, но для простой отладки достаточно использовать лишь некоторые из них.

Программа gdb предоставляет пользователю возможности:

  1. проанализировать данные программы;

  2. получить трассу - список вызовов функций, которые были выполнены, с сортировкой, указывающей, кто кого вызывал;

  3. установить точки останова, в которых выполнение программы приостанавливается, чтобы можно было проанализировать данные;

  4. выполнять программу по шагам, чтобы увидеть, что в действительности происходит.

gdb называется отладчиком на уровне исходного текста, создавая иллюзию, что выполняются операторы из программы, а не машинный код, в который они действительно транслируются.

KDbg является графическим интерфейсом к gdb в среде KDE.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]