toolchains not for create configured compiler are c++ c debugging gdb clion

c++ - not - En el depurador de Clion, ¿cómo muestro todo el contenido de una matriz int?



install clion ubuntu 18 (4)

En este momento solo muestra el primer elemento de la matriz, pero quiero una visualización de todos los elementos de la matriz. Creo que Clion está utilizando GDB.

EDIT: me refiero específicamente a las matrices en el montón. Las matrices en la pila se pueden visualizar.


Cualquier sintaxis entendida por el depurador subyacente debería funcionar, en realidad. En el caso de GDB, por ejemplo, puede usar *array@size , donde array puede ser cualquier expresión de puntero y size puede ser cualquier expresión entera (positiva), y ambas pueden incluir variables, llamadas de función, registros, cualquier cosa que GDB entienda . Algo como esto sería válido, por ejemplo:

*((int*)$rsp - 0x100)@get_size(data)


Desafortunadamente, CLion no admite actualmente dicha función. Según lo sugerido por el empleado de JetBrains , puede usar una solución alternativa. En la ventana Evaluar / Relojes use la siguiente expresión:

(MyType[128])myArray

Puedes usar un tamaño de matriz arbitrario; lo que funcione para ti.

Si su matriz se almacena en la variable void * , necesita hacer algo más complicado:

(MyType[128])*(char*)myArray

Por favor, valide este problema para aumentar la posibilidad de obtener una solución real. Para ello, haga clic en el pequeño icono del pulgar en el lado derecho de la página.


La respuesta por cubuspl42 funciona para GDB. Pero si estás usando una Mac que usa LLDB como tu depurador, el método correcto es

(MyType(*)[128])myArray

¡Espero que esto ayude!


Puedes usar plantilla y referencia:

template<int N> void foo1(int (&arr)[N]) { ... }

Si desea pasar la matriz a otra función, la función pasada también debe usar la plantilla y la referencia para la matriz:

template<int N> void foo2(int (&arr)[N]) { ... } template<int N> void foo1(int (&arr)[N]) { foo2(arr); }

Este método le permite ver todo el contenido de una matriz int en clion