In Xcode, GDB consente di modificare le variabili locali durante il debug (vedere how to change NSString value while debugging in XCode?). LLDB offre una funzionalità simile? Se è così, come possiamo usarlo?Come modificare il valore delle variabili durante il debugging con LLVM in Xcode?
risposta
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 roba seguente funziona per me. Sto usando Xcode 8.
Se si desidera impostare alcune variabili (ad esempio un "dict") su zero e quindi verificare il flusso del codice, è possibile provare quanto segue.
- Inserire il punto di interruzione correttamente dopo l'inizializzazione sul valore desiderato.
- quindi eseguire "espressione dict = nil" nella riga di comando lldb per cambiarlo. (ad esempio "nil")
- Passaggio sopra il punto di interruzione.
- Controllare la variabile "dict" nella riga successiva. Sarà zero.
Apparirà come nella console.
(lldb) expression dict = nil
(NSDictionary *) $5 = nil
- 1. come modificare il valore NSString durante il debug in XCode?
- 2. Informare il contenuto dell'ottimizzatore LLVM delle variabili
- 3. Xcode 3.2 + LLVM = nessun simbolo locale durante il debug
- 4. PhoneGap - Javascript debugging in Xcode
- 5. Xcode 4: come modificare il valore della variabile $ {EXECUTABLE_NAME}?
- 6. Modifica variabili statiche durante il debug in Eclipse
- 7. Xcode 7 crash durante il debug
- 8. Come modificare il collegamento href con il valore dropdown
- 9. Come si risolvono le variabili del modello Spring in un JSP durante il debugging con IntelliJ IDEA?
- 10. Fornire argomenti del programma durante il debugging con Code :: Blocks
- 11. Come ottenere il valore delle variabili di ambiente?
- 12. Qt ha una funzione di debugging delle variabili di orologio
- 13. Come posso modificare il valore di una variabile durante il debug di codice Java in NetBeans 7.1?
- 14. Come stampare il valore delle variabili uint32_t e uint16_t?
- 15. Impossibile visualizzare i valori delle variabili durante il debug
- 16. gdb - il debugging con tubo
- 17. Come modificare/impostare il valore DateTimePicker
- 18. Debugging con Swift e Xcode 6.4?
- 19. Come modificare una colonna e modificare il valore predefinito?
- 20. Variabili d'ambiente Xcode non presenti durante l'archivio
- 21. Come modificare il tipo e rimuovere il valore in postgresql
- 22. Modifica delle variabili in tempo reale durante il debug in eclissi?
- 23. Qual è la versione LLVM in bundle con Xcode?
- 24. Qual è il valore iniziale delle variabili del contratto Ethereum?
- 25. XCode debug vs release build durante il debug
- 26. Valore predefinito delle variabili in PHP?
- 27. Valore impostato per llvm :: ConstantInt
- 28. Posso modificare il valore di Environment.NewLine?
- 29. Come inizializzare il simbolizzatore esterno di LLVM?
- 30. Xcode scorre il testo durante la digitazione
Infatti, grazie! Un'altra piccola domanda: sto facendo questo per provare a cambiare il testo di un UILabel: "expr myLabel.text = @" ciao! "' Ma ottengo un 'errore: proprietà 'testo' non trovato su oggetto di tipo 'UILabel *' '... Qualche idea? – Eric
'expr (void) [label setText: @" Foo "]' dovrebbe farlo. Dot-Syntax di solito non funzionerà nel debugger. lldb probabilmente lo interpreta come si voleva accedere ad un membro di una c-struct, ma non sono sicuro che questa sia la ragione per cui non funzionerà. Dot-Syntax non funziona nemmeno per 'po'. invece di 'po label.text' devi usare' po [label text] ' –
Cool. Grazie mille Matthias! – Eric