Erweitern eines Arrayzeigers im Überwachungsfenster des Visual C++-Debuggers

In diesem Artikel wird beschrieben, wie Sie einen Arrayzeiger erweitern, um alle Arrayelemente im Überwachungsfenster des Visual C++-Debuggers anzuzeigen.

Originalversion des Produkts:   Visual C++
Ursprüngliche KB-Nummer:   198953

Zusammenfassung

Ab Visual C++ Version 6.0 ist es jetzt möglich, einen Arrayzeiger zu erweitern, um alle Arrayelemente im Überwachungsfenster des Visual C++-Debuggers anzuzeigen. Dieses Feature ist nicht dokumentiert.

Geben Sie im Überwachungsfenster einen Ausdruck ein, der als Zeiger ausgewertet wird, gefolgt von einem Komma und der Anzahl der Elemente im Array.

Weitere Informationen

  1. Erstellen Sie die Debugversion des folgenden Codes als Konsolenanwendung.

    // Filename main.cpp
    // No compile option needed
    #include <iostream.h>
    void main(void)
    {
        int * p;
        char* ptr = "Hello World";
        p = new int [10];
    
        for(int i=0; i<=9; i++){*(p+i) = i+1;}
        cout << i <<endl;
    }
    
  2. Treten Sie mit dem Debugger in den Code ein, und beenden Sie die letzte Codezeile.

  3. Fügen Sie im Fenster "Überwachung" oder "QuickWatch" die Variable p hinzu.ptr Neben der Variablen wird ein Pluszeichen (+) angezeigt.

  4. Klicken Sie auf das Pluszeichen (+), um die Variable zu erweitern. Es wird nur das erste Element des Arrays angezeigt, auf das es verweist.

  5. Geben Sie nun p,10 oder ptr,11 im Überwachungsfenster ein.

  6. Klicken Sie auf das Pluszeichen (+), um die Variable zu erweitern. Nun sehen Sie alle Elemente des Arrays, auf das es verweist.

Wenn Sie einen bestimmten Bereich von Elementen anzeigen möchten, geben Sie die Adresse des ersten Elements ein, um den Startindex anzugeben, gefolgt vom Formatbezeichner, wie in den vorherigen Schritten beschrieben. ( p+3),8 zeigt beispielsweise Elemente p[3..10]und (ptr+3),10 Elemente ptr[3..12]an. Leider ist der Startindex im Überwachungsfenster [0], was in diesem Beispiel tatsächlich Index 3 entspricht. Denken Sie daran, dass der Offset 3 jedem angezeigten Index hinzugefügt werden muss, um den tatsächlichen Index des Arrayelements abzurufen.