2016-09-25 1 views
1

J'utilise ce guide (http://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html) pour apprendre comment fonctionne GDB. Après la compilation et de télécharger le code de ma plate-forme de bras de Linux embarqué J'utilise une connexion à distance pour se connecter avec le gdbserver sur mon objectif:Le débogage à distance de GDB échoue avec erreur E01

Cible:

[email protected]:/Software# gdbserver HOST:1234 broken 
Process broken created; pid = 1103 
Listening on port 1234 
Remote debugging from host 192.168.178.32 

Hôte (Ubuntu 14.04 en cours d'exécution dans une machine virtuelle) :

Remote debugging using 192.168.178.33:1234 
warning: A handler for the OS ABI "GNU/Linux" is not built into this 
configuration of GDB. Attempting to continue with the default arm settings. 

Cannot access memory at address 0x0 
0x43330d40 in ??() 
(gdb) 

Je mis le point d'arrêt à la ligne 43 et poursuivre le programme jusqu'à ce qu'il arrête au point d'arrêt:

(gdb) b 43 
Breakpoint 1 at 0x8b68: file broken.cpp, line 43. 
(gdb) continue 
Continuing. 

Breakpoint 1, main() at broken.cpp:43 
43 double seriesValue = ComputeSeriesValue(x, n); 
(gdb) 

Mais après un appel pas sur mon hôte, je suis cette erreur: hôte:

warning: Remote failure reply: E01 
Ignoring packet error, continuing... 

cible:

ptrace: Input/output error. 
input_interrupt, count = 1 c = 36 ('$') 

Qu'est-ce que cela signifie et comment puis-je résoudre ce problème?

Merci pour votre aide.

Répondre

0

Host (Ubuntu 14.04 running in a virtual machine):

Remote debugging using 192.168.178.33:1234 
warning: A handler for the OS ABI "GNU/Linux" is not built into this 
configuration of GDB. Attempting to continue with the default arm settings.` 

Ceci indique que votre GDB (hôte) n'a pas été construit avec le support de la cible que vous voulez déboguer.

What does it mean and how can I fix it?

Vous devez soit obtenir une version différente (hôte) GDB, ou construire un vous-même avec le réglage correct --target.

Habituellement, un GDB hôte correct est inclus avec le code croisé que vous utilisez pour construire pour votre cible. Donc, une correction peut être aussi simple que d'exécuter /path/to/cross-gdb au lieu de gdb.

+0

Merci. C'était l'indice corrent. Il semble que bras-none-eabi-gdb ne fonctionne pas avec mon compilateur actuel. En utilisant bitbake gdb-cross vous pouvez créer une version gdb de travail pour votre compilateur croisé. – Kampi