Comment changer la valeur des variables lors du débogage avec LLVM dans Xcode?
dans Xcode, GDB vous permet de changer les variables locales pendant le débogage (voir comment changer la valeur NSString pendant le débogage dans XCode? ). La LLDB offre-t-elle une fonctionnalité similaire? Si oui, comment pouvons-nous l'utiliser?
2 réponses
expr myString = @"Foo"
(lldb) aider expr
Évaluer une expression C/ObjC/C++ dans le courant le contexte du programme, en utilisant des variables actuellement dans la portée. Cette commande prend un 'raw' entrée (pas besoin de citer des trucs).syntaxe: expression --
commande 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.
exemples:
expr my_struct->a = my_array[3]
expr -f bin -- (indice de * 8) + 5
expr char c[] = "toto"; c[0]note importante: parce que cette commande prend ' raw 'input, si vous utilisez n'importe quelle option de commande vous devez utiliser' -- ' entre la fin du la commande options et le début de l'input brut.
"expr" est l'abréviation de "expression
les trucs suivants marchent pour moi. J'utilise Xcode 8.
si vous voulez définir une variable (par exemple un" dict") à zéro et ensuite tester le flux de code, vous pouvez essayer ce qui suit.
- placez le point de rupture correctement après initialisation à la valeur désirée.
- puis exécute "expression dict = nil" en ligne de commande lldb pour la modifier. (par exemple "néant")
- enjambez le point de rupture.
- cochez la variable "dict" à la ligne suivante. Il sera nul.
il ressemblera à quelque chose dans la console.
(lldb) expression dict = nil
(NSDictionary *) = nil