vector im Debugger anzeigen lassen



  • Wie kann man im Debugger des Visual c++ 6.0

    1. alle Inhalte eines vector<int> oder vector<string> anzeigen lassen?
    2. Oder nur ein Element eines vectors?

    😕



  • Dazu lässt du dir den Vector im Überwachungsfenster anzeigen (Alt+3 drücken). Dann klickst du dich bis zu einer Variable _start oder so ähnlich durch und ziehst diese Variable mit der Maus vom Überwachungsfenster in das Überwachungsfenster 😉 (Es geht auch mit der Schnellüberwachung Shift+F9)
    Es müsste dann sowas wie

    ((*(_STL::_Vector_base<int,_STL::allocator<int> >*)(&v)))._M_start
    

    erscheinen (ich habe STLPort installiert; das sieht bei dir wahrscheinlich anders aus).
    Da es sich hier nun um ein Array handelt, kannst du einfach <Komma><Zahl> dranhängen, um die ersten <Zahl> Elemente anzeigen zu lassen, also

    ((*(_STL::_Vector_base<int,_STL::allocator<int> >*)(&v)))._M_start,10
    

    für die ersten 10 Elemente im Vektor. Das funktioniert bei allen Arrays/Zeigern.
    Um auf ein bestimmtes Element zu springen, einfach eine Zahl addieren:

    (((*(_STL::_Vector_base<int,_STL::allocator<int> >*)(&v)))._M_start+5),5
    

    Zeigt die Elemente [5] bis [9]



  • Danke! 🙂


Anmelden zum Antworten