Im Moment wird nur das erste Element des Arrays angezeigt, aber ich möchte eine Ansicht aller Elemente im Array. Ich denke, Clion benutzt GDB.
EDIT: Ich beziehe mich speziell auf Arrays auf dem Heap. Arrays auf dem Stapel können visualisiert werden.
Leider unterstützt CLion diese Funktion derzeit nicht. Wie von JetBrains Mitarbeiter vorgeschlagen , können Sie eine Problemumgehung verwenden. Verwenden Sie im Fenster Evaluate/Watches den folgenden Ausdruck:
(MyType[128])myArray
Sie können eine beliebige Arraygröße verwenden. Was auch immer für dich funktioniert.
Wenn Ihr Array in der Variable void *
gespeichert ist, müssen Sie etwas komplizierter machen:
(MyType[128])*(char*)myArray
Bitte stimmen Sie dieses Problem zu, um die Chance auf eine echte Lösung zu erhöhen. Klicken Sie dazu rechts auf der Seite auf das kleine Daumensymbol.
Die Antwort von cubuspl42 funktioniert für GDB. Wenn Sie jedoch auf einem Mac mit LLDB als Debugger arbeiten, ist dies die richtige Methode
(MyType(*)[128])myArray
Hoffe das hilft!
Sie können Vorlage und Referenz verwenden:
template<int N>
void foo1(int (&arr)[N])
{
...
}
Wenn Sie das Array an eine andere Funktion übergeben möchten, sollte die übergebene Funktion auch eine Vorlage und eine Referenz für das Array verwenden:
template<int N>
void foo2(int (&arr)[N])
{
...
}
template<int N>
void foo1(int (&arr)[N])
{
foo2(arr);
}
Mit dieser Methode können Sie den gesamten Inhalt eines int-Arrays in clion anzeigen
Jede Syntax, die der zugrunde liegende Debugger versteht, sollte tatsächlich funktionieren. Im Fall von GDB könnten Sie zum Beispiel *[email protected]
, wobei array
ein beliebiger Zeigerausdruck und size
ein beliebiger (positiver) ganzzahliger Ausdruck sein kann und beide Variablen, Funktionsaufrufe, Register und alles enthalten können, was GDB versteht. So etwas wäre zum Beispiel gültig:
*((int*)$rsp - 0x100)@get_size(data)