Показать полную графическую версию : Отладка в GDB файлов ассемблера и ассемблер в Си
FatalBSD
09-06-2004, 20:39
Доброго времени суток, уважаемые!
1.Как в Си использовать ассемблер, или можно только прилинковать объектные файлы ассемблера к Си?
2.Если кто сталкивался, подскажите с каким ключом надо компилировать файлы ассемблера, чтобы в отладчике GDB их можно было отлаживать? Это наподобие ключа -g в компиляторе gcc. Для ассемблера я использую встроенный компилятор as и линковщик ld.
1. Конечно, можно. Как это делать - RTFM.
2. По умолчанию отладочная информация и так включается, что исправляется strip'ом.
Если не ошибаюсь, флаг называется "gstabs".
FatalName
10-06-2004, 19:26
Это я FatalBSD, просто у меня че-то на зодится со старым именем и я перерегистрировался.
Вы не поняли вопрос или я не понял ответ. Как использовать asm в BSD? В виндоусе я иделаю так:
int main(){
...
asm{
...
...
}
...
return 0;
}
А как в BSD?
А на второй вопрос я не понял ответа. Когда я компилирую файлы для Си я делаю так:
gcc -g -o name1 name2.c
А как для ассемблера с компилятором as и линковщиком ld?
as ...
ld ...
Теперь я не понял. Синтаксис языка С одинаков и для BSD и для всего остального. Разница заключается в архитектуре систем, но опять же синтаксис от этого не меняется.
Что касается asm, так если Вам необходимо писать только на asm - пишите, не обязательно делать вставки.
Касаемо второй части вопроса: as -o example.o example.s
* * * * * * * * * * * * * * * * * * * * * * * * * * ld -o example example.o
а вообще man as, man ld.
Касаемо самого asm - если собрались использовать ассемблер at&t( что похвально :))
там есть заметные отличия именно в синтаксисе и от nasm и от т.д., но думаю разберетесь.
Исправлено: smooth, 22:23 10-06-2004
Добавлено:
да...как уже говорил при данной последовательности команд отладочная информация в конечный файл включается. Для того чтобы ее убрать делаете:
strip имя_файла
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.