Yocto - не удается выполнить пакет отладки

Я пытался установить отладочный пакет приложения, созданного Yocto.

После установки исполняемые файлы находятся в каталоге .debug.

Однако, когда я пытаюсь выполнить их, я получаю следующую ошибку

-sh: /etc/.debug/app: cannot execute binary file: Exec format error

Команда файла отображает:

file /etc/.debug/app
/etc/.debug/app: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter *empty*, for GNU/Linux 2.6.32, BuildID[sha1]=1dfc051dc47683e0715b842998daadd4d12c541e, not stripped

вывод команды arch: armv7l.

Приложение, кажется, работает нормально [тот, у которого нет отладочной информации].

И команда file в приложении

file /etc/app
/etc/app: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=1dfc051dc47683e0715b842998daadd4d12c541e, stripped

Я хочу выполнить приложение, скомпилированное с использованием символов отладки, чтобы при сбое приложения оно выдавало coredump.

Есть ли способ исправить это или есть ли другой лучший способ запуска программы с использованием отладочной информации [с использованием Yocto framework]?


person Arun Kuttiyara Varghese    schedule 04.10.2018    source источник


Ответы (1)


Пакеты отладки содержат только символы отладки, вы не запускаете их напрямую. Запустите стандартные исполняемые файлы, и gdb прочитает символы, установленные пакетом отладки.

person Ross Burton    schedule 04.10.2018
comment
Я не хочу пытаться запускать приложение из gdb. Я думаю, что запуск из gdb может снизить производительность в моем случае. Вместо этого хотелось бы запустить приложение и вызвать его сбой, чтобы оно сгенерировало файл coredump. Как только я получу файл дампа ядра, я смогу проанализировать его позже. - person Arun Kuttiyara Varghese; 04.10.2018
comment
Просто укажите gdb на дамп ядра, он автоматически прочитает символы из пакета отладки. - person Ross Burton; 06.10.2018