Utilice el comando "expresión" en el depurador. Usarlo es relativamente simple. Simplemente escriba la expresión de comando y presione enter. Luego se le pedirá que ingrese una expresión. Aquí hay un ejemplo
(lldb) expression
Enter expressions, then terminate with an empty line to evaluate:
2+2
(int) $2 = 4
También adjunté la información de ayuda para el comando de expresión a continuación. Espero que esto ayude.
Evalúe una expresión C/ObjC/C++ en el contexto del programa actual, usando las variables y variables definidas por el usuario actualmente en el alcance. Este comando toma entrada 'en bruto' (no es necesario citar cosas).
Sintaxis: Expresión -
Opciones de comandos Uso: expresión [-f] [-G] [-a] [-d] [-t] [-u] - expresión [-o ] [-a] [-d] [-t] [-u] - expresión
-G <gdb-format> (--gdb-format <gdb-format>)
Specify a format using a GDB format specifier string.
-a <boolean> (--all-threads <boolean>)
Should we run all threads if the execution doesn't complete on one
thread.
-d <boolean> (--dynamic-value <boolean>)
Upcast the value resulting from the expression to its dynamic type
if available.
-f <format> (--format <format>)
Specify a format to be used for display.
-o (--object-description)
Print the object description of the value resulting from the
expression.
-t <unsigned-integer> (--timeout <unsigned-integer>)
Timeout value for running the expression.
-u <boolean> (--unwind-on-error <boolean>)
Clean up program state if the expression causes a crash, breakpoint
hit or signal.
Tiempos de espera: Si la expresión se puede evaluar de forma estática (sin runnning código), entonces será. De lo contrario, de forma predeterminada, la expresión se ejecutará en la secuencia actual con un tiempo de espera corto: actualmente .25 segundos. Si no se devuelve en ese momento, la evaluación se interrumpirá y se reanudará con todos los subprocesos en ejecución. Puede usar la opción -a para deshabilitar el reintentamiento en todos los hilos . Puede usar la opción -t para establecer un tiempo de espera más corto.
Variables definidas por el usuario: Puede definir sus propias variables para mayor comodidad o para usarlas en expresiones posteriores. Los defina de la misma forma que definiría variables en C. Si el primer carácter de su variable definida por el usuario es $, el valor de la variable estará disponible en futuras expresiones , de lo contrario solo estará disponible en la expresión actual .
Ejemplos:
expr my_struct->a = my_array[3]
expr -f bin -- (index * 8) + 5
expr unsigned int $foo = 5
expr char c[] = "foo"; c[0]
NOTA IMPORTANTE: Debido a que este comando toma de entrada 'en bruto', si se utiliza cualquier opciones de comando debe utilizar '-' entre el final de las opciones de comando y el comienzo de la entrada sin procesar.
¿Qué es "po"? La consola gdb te permitirá evaluar un gran conjunto de funciones arbitrarias. ¿En particular en qué intentas hacer? –
"po" es objeto de impresión. Es la extensión de Apple a gcc que da como resultado el envío del mensaje * description * a una instancia ObjC para que devuelva su descripción. – diciu
Ah, es por eso que no he oído hablar de eso. Divertido. –