2016-02-28 7 views
0

У меня есть скомпилированная/bin/ls утилита NetBSD для платформы ARM. Выполняя то же самое, я вижу, что приложение разбилось. Пробовал декодировать то же самое с помощью gdb. Я вижу следующие ошибки.перекрестная скомпилированная утилита NetBSD/bin/ls для ARM, файлы ядра выдают ошибку, обработчик основного файла не распознает формат

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...(no отладочных символов найдено) ... сделано.

не основной обработчик файлов не распознает формат, используя по умолчанию не удается получить регистры из этого типа файла ядра не удается получить регистры из этого типа файла ядра ядра было сгенерировано с помощью `ш». Программа завершена сигналом 4, нелегальная инструкция. не удается получить регистры из этого типа файла ядра не удается получить регистры из этого типа файла ядра

демонтирует Функция не содержит программный счетчик для выбранного кадра. (gdb)

Не могли бы вы помочь в расшифровке основного файла.

+0

Ну i386 с GDB не собирается понимать ARM код. Поскольку вы перекрестно скомпилированы, вы, вероятно, должны иметь соответствующий cross-GDB как часть этой инструментальной цепочки. – Notlikethat

+0

Да. Даже используемый кросс-GDB, но не смог получить трассировку стека даже с этим. GNU gdb 6.5 Авторское право (C) 2006 Free Software Foundation, Inc. GDB - это бесплатное программное обеспечение, охватываемое общедоступной лицензией GNU, и вы являетесь . Добро пожаловать, чтобы изменить его и/или распространять его на определенных условиях. Тип «показать копирование», чтобы увидеть условия. Для GDB нет абсолютно никаких гарантий. Введите «показать гарантию» для получения дополнительной информации. Этот GDB был настроен как «--host = i686-pc-linux-gnu --target = armv7eb - netbsdelf» ... (не найдены отладочные символы) (gdb) bt Нет стека. –

+0

Вы не отступаете, вы вырезаете и вставляете текст, поэтому не совсем понятно, какие команды вы вводите, на каких машинах (машинах) и где находятся файлы, которые вы их кормите. –

ответ

0

Кажется, что в GDB есть ошибка, из-за чего перекрестная цель не может должным образом распознать формат основного файла с предполагаемого целевого узла. (Возможно, это связано с тем, что невозможно сделать set osabi NetBSD ELF.)

Возможно, вы можете установить и использовать ARM GDB, созданный для целевой системы NetBSD.

Обратите внимание, что бинарные файлы по умолчанию, установленные на NetBSD, не будут содержать отладочные символы, поэтому вам также придется создавать и копировать файлы данных отладки на целевой хост. Вы можете сделать это с помощью следующих параметров в mk.conf файл, который вы используете для кросс-сборки:

MKDEBUG = yes 
MKDEBUGLIB = yes 

файлы отладки завершится в $DESTDIR/usr/libdata/debug

 Смежные вопросы

  • Нет связанных вопросов^_^