Frage zu "Visual C++ 2005 Express Edition": dynamische Arrays im Debugger

busenbach

Mitglied
Hallo,
habe eine kurze frage zu "Visual C++ 2005 Express Edition". Ist eigentlich eher eine Kleinigkeit, aber jeden den ich gefragt habe scheint das Problem auch zu haben.


Wenn ich ganz normal ein Array erstelle (z.B. int x[10];) dann kann ich im Debugger ganz bequem den ganzen Inhalt angucken. Da gibt es doch das kleine "Plus"-Symbol und wenn ich darauf klicke dann werden die 10 Arraywerte automatisch angezeigt.

Wenn ich aber jetzt dynamisch ein PointerArray erstelle (z.B. int *x; x = new int[10];) dann sehe ich im Debugger „nur“ die Adresse wo der Pointer zeigt (oder ggf. den Inhalt der Adresse), aber ich sehe keine Möglichkeit wieder eine Liste mit den 10 Arraywerten öffnen zu können., damit ich einen Blick auf jedes einzelne Element zur selben Zeit habe.



Kennt sich da jemand aus? Einige Arbeitskollegen meinten das wäre früher mal ein Fehler bei Visual Studio gewesen, allerdings ist das mittlerweile schon behoben.
Ist das ein Bug oder gehört das so? Kann man da irgendwie tricksen? Also der übersichtshalber würde ich ungern auf dieses Feature versichten, speziell bei größeren Arrays.

Danke im voraus
 
Das ist normal.
Bei einem fixen Feld erkennt der Debugger aus dem Quelltext,
wie groß es ist, und zeigt so jedes Element an.
Bei einem Pointer kann sich die Arraygröße aber mitten im Programm verändert
werden, und weil der Debugger nicht so klug ist, dass er die aktuelle Größe herausfindet,
wird aus "Angst" vor Speicherverletztungen(und damit Abstürzen) nur immer
das erste Element angezeigt.

Soweit ich weiss, kann das nicht geändert werden.
 
Das ist normal.
Bei einem fixen Feld erkennt der Debugger aus dem Quelltext,
wie groß es ist, und zeigt so jedes Element an.
Bei einem Pointer kann sich die Arraygröße aber mitten im Programm verändert
werden, und weil der Debugger nicht so klug ist, dass er die aktuelle Größe herausfindet,
wird aus "Angst" vor Speicherverletztungen(und damit Abstürzen) nur immer
das erste Element angezeigt.

Soweit ich weiss, kann das nicht geändert werden.


Uiiii, das ist bitter. Speziell beim Debuggen ist das ja wirklich eine sehr große Hilfe wegen der Übersichtlichkeit. Jetzt muss man dann ja wirklich jedes Feld "einzeln" durchgehen, wenn man mal einen Überblick über den Inhalt haben will (oder diese in ein normales Array testweise reinschreiben).
Gibt es da irgendwelche Tricks mit denen man sich helfen kann?

merci!
 
Probier beim Angeben der Variable im Debuggerfenster,
dass du zum beispiel so was schreibst:
Statt einfach "variable"
zB "(int [10])variable"
 
Zurück