GDB Frage: Pretty-Drucken eines 2D-Arrays?

8

Ich habe eine 2d Array-Matrix [10] [10], die ich zur Debugzeit untersuchen möchte.

Ich verstehe, dass ich dies in GDB mit

machen kann %Vor%

Aber es gibt dies in einer Zeile aus, was es schwierig macht, es zu lesen.

Gibt es eine Möglichkeit, diese Ausgabe auf irgendeine Weise zu formatieren, sagen wir mal als Matrix?

    
PlagueHammer 27.10.2010, 10:00
quelle

4 Antworten

22

Ein wichtiges Merkmal von GDB ist die Fähigkeit, im debugged-Code Ausführungsfunktionen auszuführen, so dass Sie beliebige Drucke implementieren können, zum Beispiel:

%Vor%

Nachdem Sie diesen Code mit dem Schalter -g kompiliert und unter GDB ausgeführt haben, können Sie die Druckfunktion wie folgt verwenden:

%Vor%     
vitaut 27.10.2010, 10:36
quelle
10

Sie könnten immer eine Funktion in GDB definieren, um dasselbe zu tun. Wenn Sie den folgenden c-Code hätten:

%Vor%

Sie könnten dann die folgende GDB-Funktion (oder etwas ähnliches) definieren:

%Vor%

was zu folgender Ausgabe führen würde:

%Vor%

Sie können geschachtelte while-Schleifen genauso gut in Ihrer GDB-Funktion verwenden. Und wie in einer früheren Antwort erwähnt, können Sie die printArray-Funktion in Ihrem Programm immer nur innerhalb von GDB aufrufen.

    
alesplin 27.10.2010 16:29
quelle
3

Dies ist eine hilfreichere Erweiterung des letzten Posts. Sie können auch: var @ cols @ rows drucken

%Vor%     
user1530392 19.12.2012 21:37
quelle
2

Können Sie das tun?:

%Vor%

Es funktioniert in lldb - Habe es nicht in gdb versucht. Es scheint viel einfacher.

    
XYZ 16.11.2016 05:41
quelle

Tags und Links