2013-06-19 16 views
7

Ich bin in einer GDB-Debugging-Sitzung und ich habe ein Array der Länge 20.000. Die meisten Elemente sind Null, aber es gibt ein paar von ihnen um den Index 10000, die von Interesse sind. Leider, wenn ich p the_array[10000]@30 oder etwas sage, bekomme ich "nur Werte im Speicher können mit '@' erweitert werden. Wie kann ich einen Bereich dieses Arrays visualisieren, ohne jeden Index über einen Bereich von beispielsweise 40-50 Elementen manuell anfordern zu müssen?Wie kann ich dieses Stück dieses Arrays in gdb untersuchen?

Antwort

11

Ich würde erwarten, dass dies funktioniert. Und es funktioniert für mich. Ich habe dieses kleine Programm:

int x[10000]; 

Jetzt in GDB:

(gdb) p x[50]@3 
$2 = {0, 0, 0} 

Viele Details aus Ihrer Frage fehlen. Vielleicht hat dein gdb einen Fehler. Oder vielleicht ist Ihr Array in gewisser Hinsicht seltsam. Die gdb-Version und Dinge wie "whatis the_array" könnten interessant sein.