LLDB
Low Level Debugger
Contrôle des processus
process attach --name <nom>
Attache LLDB à un processus en cours d'exécution à partir de son nom.
process attach --name <nom> --waitfor
Attend le lancement du processus, puis s'y attache automatiquement.
process connect connect://<hôte>:<port>
Se connecte à un debugserver distant.
process status
Affiche l'état actuel du processus débogué.
c (continue)
Reprend l'exécution du programme.
detach
Détache LLDB du processus tout en laissant celui-ci continuer son exécution.
q (quit)
Quitte LLDB.
Points d'arrêt (Breakpoints)
b <méthode> (breakpoint set --name)
Place un point d'arrêt sur une fonction ou une méthode.
b -a <adresse> (breakpoint set --address)
Place un point d'arrêt à une adresse mémoire précise.
breakpoint set --selector <sélecteur>
Place un point d'arrêt sur toutes les méthodes implémentant un sélecteur Objective-C donné.
br l (breakpoint list)
Liste tous les points d'arrêt définis.
breakpoint enable <num>
Active un point d'arrêt.
breakpoint disable <num>
Désactive un point d'arrêt.
breakpoint delete <num>
Supprime un point d'arrêt spécifique.
breakpoint delete
Supprime l'ensemble des points d'arrêt.
Exécution pas à pas (Stepping)
n (next)
Exécute l'instruction suivante sans entrer dans les appels de fonctions (niveau source).
s (step)
Exécute l'instruction suivante en entrant dans les fonctions appelées (niveau source).
fin (finish)
Exécute jusqu'au retour de la fonction courante.
ni
Exécute une seule instruction assembleur sans entrer dans les appels.
si
Exécute une seule instruction assembleur en entrant dans les appels.
Threads et pile d'appels
thread list
Affiche la liste des threads du processus.
bt (backtrace)
Affiche la pile d'appels du thread courant.
bt all
Affiche la pile d'appels de tous les threads.
f <num> (frame select)
Se positionne sur une frame spécifique de la pile d'appels.
Registres
register read
Affiche tous les registres généraux.
register read <reg> <reg>
Affiche le contenu des registres spécifiés.
register read pc
Affiche la valeur du compteur ordinal (Program Counter).
register write <reg> <valeur>
Modifie le contenu d'un registre.
Mémoire
x <adresse> (memory read)
Lit la mémoire à l'adresse indiquée.
x $x0
Lit la mémoire pointée par le registre x0.
memory read --format s <adresse>
Affiche le contenu mémoire sous forme de chaîne de caractères.
memory read --size 1 --format x --count 64 <adresse>
Lit 64 octets et les affiche en hexadécimal.
x/16xb <adresse>
Version abrégée pour afficher 16 octets en hexadécimal.
memory write <adresse> <valeur>
Écrit une valeur à une adresse mémoire.
Expressions et affichage
expr <expression> (expression)
Évalue une expression.
expression (char *)$x1
Convertit le contenu du registre x1 en chaîne de caractères.
po <expression>
Affiche la description d'un objet Objective-C.
p <expression>
Affiche la valeur brute d'une expression.
Désassemblage
di -f (disassemble --frame)
Désassemble la fonction correspondant à la frame courante.
disassemble --name "<méthode>"
Désassemble une méthode ou une fonction spécifique.
disassemble --start-address <adresse> --count <n>
Désassemble n instructions à partir de l'adresse indiquée.
Points de surveillance (Watchpoints)
watchpoint set expression -w write -- <adresse>
Déclenche un arrêt lors d'une écriture à l'adresse spécifiée.
watchpoint set expression -w read -- <adresse>
Déclenche un arrêt lors d'une lecture à l'adresse spécifiée.
watchpoint set expression -w read_write -- <adresse>
Déclenche un arrêt lors des lectures et des écritures.
watchpoint list
Affiche la liste des watchpoints actifs.
watchpoint delete <num>
Supprime un watchpoint.
Autres commandes utiles
help
Affiche la liste des commandes disponibles.
help <commande>
Affiche l'aide détaillée d'une commande spécifique.
image list
Liste toutes les bibliothèques et tous les exécutables chargés en mémoire.
image list -f <nom>
Recherche un binaire ou une bibliothèque chargée par son nom.
settings set stop-disassembly-display always
Affiche systématiquement le désassemblage lorsque l'exécution est interrompue.
script
Ouvre l'interpréteur Python intégré à LLDB.
Mis à jour