2016-02-28 8 views
0

J'ai un utilitaire NetBSD compilé/bin/ls pour la plateforme ARM. Tout en exécutant le même, je vois cette application s'est écrasé. J'ai essayé de décoder la même chose en utilisant gdb. Je vois les erreurs suivantes.Utilitaire NetBSD compilé croisé/bin/ls pour ARM, les fichiers core donnent des erreurs aucun gestionnaire de fichiers core ne reconnaît le format

GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-23.el5_5.2) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3 +: GNU GPL version 3 ou version ultérieure http://gnu.org/licenses/gpl.html Ceci est logiciel libre: vous êtes libre de le modifier et de le redistribuer. Il n'y a AUCUNE GARANTIE, dans la mesure permise par la loi. Tapez "show copy" et "show warranty" pour plus de détails. Ce GDB a été configuré en tant que "i386-redhat-linux-gnu". Pour les instructions de rapport de bogue, veuillez consulter: http://www.gnu.org/software/gdb/bugs/ ... Lecture de symboles depuis /home/subrahmanyam/crash/ls...(aucun symbole de débogage trouvé) ... terminé.

aucun gestionnaire de fichiers de base reconnaît le format, en utilisant par défaut Impossible de récupérer les registres de ce type de fichier core Impossible de récupérer les registres de ce type de fichier de base de base a été généré par `sh ». Programme terminé avec le signal 4, instruction illégale. Impossible de récupérer les registres de ce type de fichier core Impossible de récupérer les registres de ce type de fichier core

désassembler Aucune fonction contient compteur de programme pour le cadre sélectionné. (gdb)

Pouvez-vous s'il vous plaît aider dans le décodage du fichier de base.

+0

Eh bien, un i386 GDB ne va pas comprendre ARM code. Puisque vous avez compilé de façon croisée, vous devriez probablement avoir une croix-GDB correspondante dans le cadre de cette chaîne d'outils. – Notlikethat

+0

Oui. Même utilisé cross-GDB mais ne pouvait pas obtenir la trace de la pile, même avec ça. GNU gdb 6.5 GDB est un logiciel libre, couvert par la GNU General Public License, et vous êtes le bienvenue pour le changer et/ou distribuer des copies de celui-ci sous certaines conditions. Tapez "show copy" pour voir les conditions. Il n'y a absolument aucune garantie pour GDB. Tapez "show warranty" pour plus de détails. Ce GDB a été configuré comme "--host = i686-pc-linux-gnu --target = armv7eb - netbsdelf" ... (aucun symbole de débogage trouvé) (gdb) bt Aucune pile. –

+0

Vous ne vous indentez pas de couper du texte et de le coller afin de ne pas savoir exactement quelles commandes vous tapez, sur quelle (s) machine (s) et où se trouvent les fichiers que vous les alimentez. –

Répondre

0

Il semble qu'il y ait un bogue dans GDB qui empêche la version de la cible croisée de reconnaître correctement le format du fichier core de l'hôte cible. (Peut-être cela a-t-il quelque chose à voir avec le fait qu'il est impossible de faire set osabi NetBSD ELF.)

Peut-être pouvez-vous installer et utiliser le GDB ARM construit pour le système cible NetBSD. Notez que les binaires par défaut installés sur NetBSD n'auront pas de symboles de débogage, donc vous devrez peut-être compiler et copier les fichiers de données de débogage sur l'hôte cible. Vous pouvez le faire avec les paramètres suivants dans le fichier mk.conf que vous utilisez pour votre contre-build:

MKDEBUG = yes 
MKDEBUGLIB = yes 

Les fichiers de débogage se retrouveront dans $DESTDIR/usr/libdata/debug