En Xcode, GDB le permite cambiar las variables locales durante la depuración (consulte how to change NSString value while debugging in XCode?). ¿LLDB ofrece una funcionalidad similar? Si es así, ¿cómo podemos usarlo?¿Cómo cambiar el valor de las variables mientras se depura con LLVM en Xcode?
Respuesta
expr myString = @"Foo"
(lldb) help expr
Evaluate a C/ObjC/C++ expression in the current program context, using variables currently in scope. This command takes 'raw' input (no need to quote stuff).Syntax: expression --
Command Options Usage: expression [-f ] [-G ] [-d ] [-u ] -- expression [-o] [-d ] [-u ] -- expression
-G <gdb-format> (--gdb-format <gdb-format>) Specify a format using a GDB format specifier string. -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. -u <boolean> (--unwind-on-error <boolean>) Clean up program state if the expression causes a crash, breakpoint hit or signal.
Examples:
expr my_struct->a = my_array[3]
expr -f bin -- (index * 8) + 5
expr char c[] = "foo"; c[0]IMPORTANT NOTE: Because this command takes 'raw' input, if you use any command options you must use ' -- ' between the end of the command options and the beginning of the raw input.
'expr' is an abbreviation for 'expression'
La siguiente cosa funciona para mí. Estoy usando Xcode 8.
Si desea establecer alguna variable (por ejemplo, "dict") en cero y luego probar el flujo de código, puede intentar lo siguiente.
- Coloque el punto de interrupción correctamente después de inicializado al valor deseado.
- luego ejecute "expression dict = nil" en lldb línea de comando para cambiarlo. (por ejemplo "nil")
- Paso sobre el punto de quiebre.
- Compruebe la variable "dict" en la siguiente línea. Será nil.
Se verá algo así como en la consola.
(lldb) expression dict = nil
(NSDictionary *) $5 = nil
- 1. Alternar animación lenta mientras se depura con el dispositivo iOS
- 2. Cómo ver una DataTable mientras se depura
- 3. ¿Cómo cambiar el directorio de trabajo mientras se depura en Visual Studio?
- 4. cómo cambiar el valor NSString durante la depuración en XCode?
- 5. ¿Se abre automáticamente el terminal cuando se depura en Xcode?
- 6. Cambiar el fondo variable de la ventana emergente mientras se depura en Eclipse
- 7. Cómo evitar que Visual Studio inicie WcfSvcHost.exe mientras se depura?
- 8. Indicar el contenido del optimizador de LLVM de las variables
- 9. Javascript: cómo se supervisa constantemente el valor de las variables
- 10. Cómo cambiar el idioma de los mensajes de excepción de Visual Studio a inglés mientras se depura
- 11. ¿Puedo personalizar el valor de intellisense que se muestra cuando se desplaza mientras se depura en Visual Studio?
- 12. Evite que Silverlight 3 cachee mientras depura
- 13. La aplicación se cuelga cuando se depura en el dispositivo iOS 3.1.3 con Xcode 4.3.2
- 14. cómo inspeccionar objetos mientras se depura Groovy (plugin de eclipse u otro)
- 15. ¿Cómo puedo modificar un valor de variable mientras se depura en IntelliJ, para que los relojes respectivos se actualicen automáticamente?
- 16. Usando LLVM Clang 2.6 con Xcode 3.2
- 17. ¿Cómo evitar ingresar archivos fuente de la biblioteca mientras se depura en Qt Creator con gdb?
- 18. ¿Cómo puedo ingresar comandos a un indicador gdb mientras se depura con Eclipse CDT?
- 19. Java - ¿Cómo verificar el valor de las variables 'ThreadLocal' en Eclipse?
- 20. ¿Cómo se depura el javascript en Safari?
- 21. ¿Cómo se depura el código con muchas plantillas en C++?
- 22. Xcode 4: ¿Cómo cambiar el valor de la variable $ {EXECUTABLE_NAME}?
- 23. ¿Cómo se hace funcionar getResourceAsStream mientras se depura Java en Eclipse?
- 24. es posible editar el código mientras se depura en Visual Studio, como en eclipse (java)
- 25. ¿Las variables delphi se inicializan con un valor predeterminado?
- 26. Establecer valor para llvm :: ConstantInt
- 27. LLVM Nombres y parámetros de las variables de instrucción
- 28. ¿Cómo se depura CSS imprimible?
- 29. ¿Cómo cambio un valor mientras depuro python con pdb?
- 30. Deshabilitar el manejo de excepciones mientras se depura el proyecto de C++ usando Google Test
De hecho, gracias! Una pequeña pregunta más: estoy haciendo esto para tratar de cambiar el texto de un UILabel: ''expr myLabel.text = @" hello! 'Pero obtengo un' error: propiedad 'text' no encontrado en el objeto de tipo 'UILabel *' '... ¿Alguna idea? – Eric
'expr (void) [label setText: @" Foo "]' debería hacerlo. Dot-Syntax por lo general no funcionará en el depurador. lldb probablemente lo interpreta como quería acceder a un miembro de una estructura de c, pero no estoy seguro de si esta es la razón por la que no funcionará. Dot-Syntax tampoco funciona para 'po'. en lugar de 'po label.text', debe usar' po [texto de etiqueta] ' –
Cool. Muchas gracias Matthias! – Eric