2010-12-29 4 views
0
gcc (GCC) 4.1.2 
c89 
Red Hat Enterprise Linux Server release 5.4 
2.6.18-164.el5 
GNU gdb Fedora (6.8-37.el5) 

avec le drapeau Compiler de débogage suivant -ggdbMise au point techinques pour le débogage à distance

Je cherche un moyen de débogage sur un serveur distant.

Actuellement, je débogue avec gdb.

Toutefois, je souhaite imprimer le contenu d'une structure pour voir à quelles valeurs l'élément a été affecté.

Je peux le faire:

p media_description 
$2 = (sdp_media_description_t *) 0xb7a80318 

Cependant, qui vient de me donner l'adresse de mémoire de la structure.

Y a-t-il un endroit pour imprimer les éléments d'une structure?

Un grand merci pour tous les conseils,

===== ====== Modifier

sdp_media_description_t *media_description = NULL;   
media_description = get_item(sdp_media_des_list, outer); 

Le code ci-dessus doit renvoyer un pointeur vers une instance d'une structure.

Répondre

1

Peut-être que vous avez un pointeur sur une struct plutôt qu'un struct?

Si tel est le cas, vous pouvez juste déréférencer le pointeur lors de l'impression, à savoir

p * media_description

De plus, si vous ne voulez pas travailler avec gdb en mode console et un graphique front end que vous préférez, vous devriez pouvoir l'utiliser à distance soit en exécutant gdbserver sur la machine en cours de débogage et en exécutant gdb sur la machine de développement pilotée par le gui, soit en exécutant tout sur la machine testée et en utilisant les capacités distantes de le système de fenêtre X pour l'afficher sur la machine devant laquelle vous êtes assis

+0

Etrange. Quand je fais cela, je reçois le type incomplet suivant: (gdb) p * media_description $ 13 = ant2009

+0

Veuillez écrire le code qui définit et instancie la structure. –

+0

J'ai modifié mon code source. Merci – ant2009

1

Depuis media_description est apparemment un pointeur, vous souhaitez imprimer la structure elle pointe vers:

p *media_description