Я строю небольшую ОС exectuable, и у меня проблемы с процессом связывания с использованием NASM, GCC и GNU Binutils.
Я связывание нескольких типов объектных файлов:Отсутствует информация об отладке от NASM и GCC
- ELF32 объектных файлов с карликовой отладочной информацией от NASM
- ELF32 объектных файлов с карликовой отладочной информацией из GCC
Когда я соединяю toghether этих файлов с помощью специального скрипта компоновщика, а затем перечитайте информацию о дебабе, я нахожу только информацию об отладке из первого связанного объектного файла (упорядоченного по эффективному адресу).
Для справочных целей, я выложу пару строк, которые я использую для компиляции:
nasm -g -felf32 -F dwarf entry.asm -o "build/entry.o"
gcc -c main.c -o "build/main.o" -m32 -mtune=i386 -gdwarf
И ссылка:.
ld -Tlinker.ld -m elf_i386 --nmagic -nostdlib -static -o "build/bootload.elf" -M -g > "build/map.txt"
Пользуюсь GCC V 6.2, Binutils v. 2.27 и NASM v. 2.12
Я при необходимости отправлю бит сценария компоновщика. Пожалуйста, помогите, отладка без информации о линии очень раздражает.
Вы пробовали без скрипта компоновщика, чтобы убедиться, что это причина? – Jester
Мне нужен скрипт компоновщика, потому что мне нужно поместить определенные фрагменты кода по определенным адресам. – JPSgfx
Я понимаю, что, тем не менее, было бы полезно узнать, вызвало ли это проблему или нет. – Jester