vector-daten beim debuggen
-
Hallo
ja vector ist ein Teil des C++ Standards.
Aber Debugger sind es nicht. Deshalb wirst du ins Compiler-Forum verschoben. Denn was du dafür machen must ist Debugger/IDE-abhängig.bis bald
akari
-
Bei einem blanken Pointer oder Array könnte der Debugger etwas mit dem "point[0]" anfangen. Aber ein Vector ist kein blankes Array und hinter dem operator[] steht eine (normale) Memberfunktion, von der der Debugger keine Ahnung hat.
Als Lösung könntest du dich mal durch die innere Structur der Vector-Klasse durchhangeln und dann "point._data[0];" ausgeben lassen (wie das Element heißt, ist nirgends definiert - aber irgendwo hat der Vector einen Pointer auf seinen Datenblock).
-
Also VC++ 2005 müsste das glaub ich korrekt anzeigen, den gesamten Container-Inhalt. Oder? Mir war jedenfalls danach.
-
nein, leider wird gar nichts angezeigt. schau dir mal bitte folgenden code an:
vector <int> WINK[5]; for (i=0;i<5;i++) { for (j=0;j<ENDE;j++) WINK[i].push_back(j); }so, wenn ich nun einfach im debugger-fenster folgenden ausdruck eingebe: WINK[i][j], dann gibts folgende meldung:
CXX0058: Fehler: Überladenen Operator nicht gefunden
leider wurde ich ja nicht mit meiner frage verschoben in das entsprechende forum

DANKE.
STICK.
-
Also in meinem VC++2003 wird zumindest das erste, das letzte und das Ende vom Vector angezeigt. Bei einem Vector (da er ein Array implementiert) kann man aber unter Debug->Fenster->Arbeitsspeicher ein fenster aufmachen und dann unter Adresse die Adresse von _myfirst eingeben und schon sieht man alle Elemente.
so, wenn ich nun einfach im debugger-fenster folgenden ausdruck eingebe: WINK[i][j], dann gibts folgende meldung
Hem, weiß jetzt nicht was du damit bezwecken willst? Und vorallem, wo hast du das eingegeben? Mir ist solch eine Möglichkeit unbekannt.
Unter Debugger->Fenster->Lokal kann man sich jedenfalls die aktuellen Variablen anschauen. Da müsste auch dein Vector zu sehen sein. Einfach aufklappen. VC2005 habe ich leider nicht mehr installiert, kann hier keine genaueren Infos mehr machen.
-
ich will damit bezwecken, dass ich weis, was in "WINK" drin ist.
eingegeben habe ich "WINK[i][j]" im ÜBERWACHUNGS-DEBUG-FENSTER, also wenn man ALT+3 drückt.
DANKE.
STICK.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo,
vielleicht hilft das hier:vector<int>point; // die Funktion zum ausgeben: void printint(const point) { TRACE(L"Int Index: %d\n",point); } // ein paar werte eingeben: for(int i = 0; i < 10; i++) { point.push_back(i); } // und ausgeben: for_each(point.begin(), point.end(), printint);habs getestet es geht, so kann ich alles aus dem point ausgeben!
vielleicht ist das was du haben wolltest??lg
pixel
-
servus.
danke für die antwort. aber ich wills ja nicht auf dem bildschirm ausgeben, sondern wenn ich einen haltepunkt eingefügt habe, so will ich dann im debug-fenster sehen, welche werte mein vector gerade hat.
trotzdem danke.STEFAN.
-
Hallo
Ich benutze VS2005 und da kann man sich auch den Inhalt von Vektoren ansehen. Einfach drüberfahren und auf + klicken.
chrische
-
hallo CHRISCHE5.
ARTCHI hat mir VS2005 auch schon empfohlen. ich werds am wochenende installieren.
DANKE.
STEFAN.