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) 

Kompilieren mit der folgenden Debugflag -ggdbDebuggen Techinques für Remote-Debugging

ich auf eine Art und Weise bin auf der Suche auf einem Remote-Server zu debuggen.

Derzeit debuggen ich mit gdb.

Ich möchte jedoch den Inhalt einer Struktur drucken, um zu sehen, welche Werte dem Element zugewiesen wurden.

Ich kann dies tun:

p media_description 
$2 = (sdp_media_description_t *) 0xb7a80318 

jedoch, dass gib mir nur die Speicheradresse der Struktur.

Gibt es irgendwo die Elemente einer Struktur zu drucken?

Vielen Dank für jede Beratung,

===== ====== bearbeiten

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

Der obige Code einen Zeiger auf eine Instanz einer Struktur zurückkehren.

Antwort

1

Vielleicht haben Sie einen Zeiger auf eine Struktur haben, anstatt eine Struktur?

Wenn das der Fall ist kann man nur den Zeiger dereferenzieren, wenn Sie es drucken, dh

p * media_description

Auch, wenn Sie mit GDB im Konsolenmodus arbeiten, nicht wollen, und eine grafische haben Frontend, das Sie bevorzugen, sollten Sie in der Lage sein, es remote entweder über den laufenden gdbserver auf der Maschine zu debuggen und running gdb auf dem Entwicklungscomputer von der GUI, oder indem Sie alles auf der Maschine unter Test und mit den Remote-Funktionen von das X-Fenstersystem zur Anzeige auf der Maschine, vor der Sie sitzen

+0

Seltsam. Wenn ich das tue, bekomme ich den folgenden unvollständigen Typ: (gdb) p * media_description $ 13 = ant2009

+0

Bitte schreiben Sie den Code, der die Struktur definiert und instanziiert. –

+0

Bearbeitete meinen Quellcode. Danke – ant2009

1

Da media_description ist offenbar ein Zeiger, möchten Sie die Struktur drucken es weist auf:

p *media_description