2016-02-29 1 views
4

J'essaie de configurer le débogueur gdb dans eclipse pour l'attacher à un programme distant. Voici la configuration que j'utilise:GDB se bloque lors de la tentative de connexion

Pour le développement PC (dev), j'utilise Eclipse Mars sur un PC Windows 7. Eclipse est configuré pour utiliser le compilateur croisé GCC/G ++ et gdb en tant que débogueur distant. J'utilise Sourcery CodeBench Lite comme l'outil de développement dans Windows.

dev> gdb --version 
    dev> GNU gdb (Sourcery CodeBench Lite 2014.05-25) 7.7.50.20140217-cvs 

Le PC cible est un RHEL 7, où j'utilise gdbserver afin que je puisse déboguer mon application à distance.

target> gdbserver --version 
    target> GNU gdbserver (GDB) Red Hat Enterprise Linux 7.6.1-64.el7 
     Copyright (C) 2013 Free Software Foundation, Inc. 

J'ai deux configuration de débogage dans Eclipse, un pour le débogage à distance et un autre pour la fixation à un programme à distance qui est en cours d'exécution dans la cible PC. Je n'ai pas de problème de débogage mon programme en utilisant la configuration de débogage à distance, cependant, lorsque je tente de joindre au programme à distance, je reçois l'erreur suivante: enter image description here

Voici comment configurer mon débogueur pour attacher à une télécommande Application:

enter image description here

enter image description here

J'utilise le script gdbinit suivant:

handle SIG34 nostop noprint pass 
set verbose on 
set sysroot 

J'ai également essayé d'utiliser les mêmes versions GDB des deux côtés et j'ai obtenu le même résultat. À ce stade, je suis ouvert à toute suggestion!

Répondre

2

Ok, je pense que je l'ai fait fonctionner. Le problème semble être dû à l'ancienne version de GDB que j'utilisais sur le PC cible. Comme je l'ai mentionné dans ma question, j'utilisais GDB 7.6.1-64.el7. Pour mettre à jour le GDB, j'ai téléchargé le dernier code source de http://ftp.gnu.org/gnu/gdb/. N'oubliez pas de mettre à jour à la fois gdb et gdbserver. Le serveur gdbserver est fourni dans le package de téléchargement. Voici les étapes que j'ai pris après que je mets archives gdb target/tmp:

target_pc/tmp> gtar -xvf gdb-7.11.tar.gz 
target_pc/tmp> cd gdb-7.11 
target_pc/tmp/gdb-7.11> ./configure 
target_pc/tmp/gdb-7.11> make 
target_pc/tmpgdb-7.11> cd gdb/gdbserver 
target_pc/tmpgdb-7.11/gdb/gdbserver> ./configure 
target_pc/tmpgdb-7.11/gdb/gdbserver> make 

après un construit avec succès, vous pouvez soit utiliser make install ou copier le gdb et gdbserver binaire et de le mettre dans le répertoire/usr/bin ou/bin. vous devez également redémarrer le gdbserver:

/usr/bin/gdbserver --remote-debug --multi :8000 

vous pouvez ajouter cette ligne à fichier /etc/rc.local afin que vous démarrez le gdbserver sur le démarrage de linux.