Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Отладка в GDB файлов ассемблера и ассемблер в Си (http://forum.oszone.net/showthread.php?t=29665)

FatalBSD 09-06-2004 20:39 205217

Доброго времени суток, уважаемые!

1.Как в Си использовать ассемблер, или можно только прилинковать объектные файлы ассемблера к Си?

2.Если кто сталкивался, подскажите с каким ключом надо компилировать файлы ассемблера, чтобы в отладчике GDB их можно было отлаживать? Это наподобие ключа -g в компиляторе gcc. Для ассемблера я использую встроенный компилятор as и линковщик ld.

smooth 09-06-2004 23:40 205218

1. Конечно, можно. Как это делать - RTFM.
2. По умолчанию отладочная информация и так включается, что исправляется strip'ом.
Если не ошибаюсь, флаг называется "gstabs".

FatalName 10-06-2004 19:26 205219

Это я FatalBSD, просто у меня че-то на зодится со старым именем и я перерегистрировался.

Вы не поняли вопрос или я не понял ответ. Как использовать asm в BSD? В виндоусе я иделаю так:
int main(){
 ...
 asm{
   ...
   ...
 }
 ...
 return 0;
}
А как в BSD?

А на второй вопрос я не понял ответа. Когда я компилирую файлы для Си я делаю так:
gcc -g -o name1 name2.c
А как для ассемблера с компилятором as и линковщиком ld?
as  ...
ld  ...

smooth 10-06-2004 22:22 205220

Теперь я не понял. Синтаксис языка С одинаков и для BSD и для всего остального. Разница заключается в архитектуре систем, но опять же синтаксис от этого не меняется.
Что касается asm, так если Вам необходимо писать только на asm - пишите, не обязательно делать вставки.
Касаемо второй части вопроса: as -o example.o example.s
* * * * * * * * * * * * * * * * * * * * * * * * * * ld -o example example.o
а вообще man as, man ld.
Касаемо самого asm - если собрались использовать ассемблер at&t( что похвально :))
там есть заметные отличия именно в синтаксисе и от nasm и от т.д., но думаю разберетесь.


[s]Исправлено: smooth, 22:23 10-06-2004[/s]

Добавлено:

да...как уже говорил при данной последовательности команд отладочная информация в конечный файл включается. Для того чтобы ее убрать делаете:
strip имя_файла


Время: 04:07.

Время: 04:07.
© OSzone.net 2001-