Кросс-скомпилированная утилита NetBSD /bin/ls для ARM, файлы ядра выдают ошибку, никакой обработчик файла ядра не распознает формат
У меня есть кросс-скомпилированная /bin/ls NetBSD утилита для платформы ARM. При выполнении то же самое я вижу, что приложение упало. Попробовал расшифровать тоже самое с помощью gdb. Я вижу следующие ошибки.
GNU GDB (GDB) Red Hat Enterprise Linux (7.0.1-23.el5_5.2) Copyright (C) 2009 Free Software Foundation, Inc. Лицензия GPLv3+: GNU GPL версии 3 или более поздней версии http://gnu.org/licenses/gpl.html Это бесплатное программное обеспечение: вы можете свободно изменять и распространять его. НЕ ПРЕДОСТАВЛЯЕТСЯ ГАРАНТИИ, если это разрешено законом. Введите "показать копирование" и "показать гарантию" для деталей. Эта GDB была настроена как "i386-redhat-linux-gnu". Инструкции по сообщению об ошибках см. По адресу: http://www.gnu.org/software/gdb/bugs/... Чтение символов из /home/subrahmanyam/crash/ls...(не найдено символов отладки)... сделанный.
никакой обработчик файла ядра не распознает формат, используя значение по умолчанию. Невозможно извлечь регистры из этого типа файла ядра. Невозможно извлечь регистры из этого типа файла ядра. Ядро было сгенерировано `sh'. Программа завершена с сигналом 4, незаконное указание. Невозможно получить регистры из основного файла этого типа. Невозможно получить регистры из основного файла этого типа.
дизассемблирование Нет функции, содержащей программный счетчик для выбранного кадра. (GDB)
Можете ли вы помочь в расшифровке основного файла.
1 ответ
Кажется, в GDB есть ошибка, из-за которой кросс-целевая версия не может правильно распознать формат файла ядра с предполагаемого целевого хоста. (Возможно, это связано с тем, что это невозможно сделать set osabi NetBSD ELF
.)
Возможно, вы можете установить и использовать ARM GDB, созданную для целевой системы NetBSD.
Обратите внимание, что двоичные файлы по умолчанию, установленные в NetBSD, не будут иметь символов отладки, поэтому вам, возможно, придется создавать и копировать файлы данных отладки также на целевой хост. Вы можете сделать это с помощью следующих настроек в mk.conf
файл, который вы используете для кросс-сборки:
MKDEBUG = yes
MKDEBUGLIB = yes
Файлы отладки в конечном итоге в $DESTDIR/usr/libdata/debug