Instructions d'utilisation de l'outil idbx pour déboguer un programme à partir de la ligne de commande.
Pourquoi et quand exécuter cette tâche
L'utilisateur peut exécuter l'outil idbx en lançant la commande "idbx" à l'invite de commande. Cette commande lui permet de déboguer un programme sans utiliser un plan de travail d'interface utilisateur.
- Liste des commandes
- assign <variable> = <expression>
- Affecte la valeur de l'expression à la variable.
- clear <numéro_ligne>
- Supprime tous les points d'arrêt et les traces au niveau du numéro de ligne indiqué.
Remarque : Voir également delete.
- cont <numéro_signal>
- cont <,nom_signal>
- Poursuit l'exécution à partir de l'endroit où elle avait été arrêtée. Si un signal est indiqué,
le traitement se poursuit comme si le signal avait été reçu. Sinon, le traitement se poursuit comme s'il n'avait pas été arrêté.
- delete <numéro_statut>
- delete all
- delete tskip [ for t<numéro_thread> ]
- Les traces ou arrêts correspondant aux numéros indiqués ou au nombre de theads tskip restants pour l'unité d'exécution indiquée sont supprimés. Les nombres associés aux traces et arrêts et les nombres de threads tskip restants peuvent être imprimés à l'aide de la commande "status".
- disable <numéro_statut>
- disable
- Les traces ou arrêts correspondant aux numéros indiqués sont désactivés.
Les nombres associés aux traces et arrêts peuvent être imprimés à l'aide de la commande "status".
- down
- down <nombre>
- up
- up <nombre>
- Déplace la fonction en cours, qui est utilisée pour la résolution des noms,
vers le haut ou le bas de la pile à <nombre> niveaux. Le <nombre> par défaut est un.
- enable <numéro_statut>
- enable all
- Les traces ou arrêts correspondant aux numéros indiqués sont activés.
Les nombres associés aux traces et arrêts peuvent être imprimés à l'aide de la commande "status".
- goto <numéro_ligne>
- goto "<nom_fichier>" : <numéro_ligne>
- gotoi <adresse>
- Remplace le compteur ordinal par <adresse> ou par une adresse proche de <numéro_ligne>.
La variable unsafegoto doit être définie si une action goto hors de la fonction en cours est souhaitée.
- help
- help [> <nom_fichier> ]
- help <commande> [> <nom_fichier> ]
- help <rubrique> [> <nom_fichier> ]
- Imprime les informations relatives à une commande ou à une rubrique. (La chaîne décrivant une rubrique peut être abrégée.) Les longs messages peuvent être paginés à l'aide de l'alias par défaut "pg". Par exemple : "pg" (help set_variables).
Remarque : "pg"
n'est actuellement pas pris en charge.
Remarque : La redirection vers un fichier n'est actuellement pas prise en charge.
- list [ <numéro_ligne_source> [, <numéro_ligne_source> ]]
- list <procédure>
- Dresse la liste des lignes du fichier source en cours à partir du numéro de la première ligne jusqu'au second numéro indiqué (inclusif). Si aucune ligne n'est indiquée, ce sont les dix lignes suivantes qui sont listées. Si le nom d'une procédure ou d'une fonction est indiqué, ces sont les lignes n-k à n+k qui sont listées, où n représente la première instruction de la procédure ou de la fonction et k est défini par listwindow.
- listi
- listi [ <adresse> [ , <adresse> ]]
- listi at <numéro_ligne_source>
- listi <procédure>
- Dresse la liste des instructions à partir de l'emplacement de compteur ordinal en cours ou d'une adresse, d'un numéro de ligne ou d'une procédure indiqué(e). Le nombre d'instructions imprimé est défini pat la variable interne dbx listwindow.
- move <numéro_ligne_source>
- Remplace la prochaine ligne devant être affichée par la commande list par le numéro_ligne_source
- next
- next <nombre>
- Exécute le programme jusqu'à la ligne suivante. Si un nombre est indiqué, exécute les n lignes suivantes, n étant le nombre fourni. La différence entre la commande "next" et la commande "step" réside dans le fait que si la ligne contient un appel à une procédure ou une fonction, la commande "step" s'arrête au début de ce bloc alors que la commande "next" ne s'arrête pas.
- nexti
- nexti <nombre>
- Il s'agit d'une étape simple comme avec la commande "next", mais la commande porte sur une instruction unique au lieu d'une ligne source. Si un nombre est indiqué, exécute les n instructions suivantes indiquées par nexti, n étant le nombre fourni.
- print <expression> [ , <expression> ]
- print <procédure (<paramètres>)
- Imprime la valeur de l'expression indiquée. Il est également possible d'imprimer les valeurs de registre général et de registre à virgule flottante à l'aide de cette commande.
- "print <procédure> (<paramètres>)" exécute le code objet associé à la procédure et imprime la valeur de retour.
- Les noms sont résolus en premier à l'aide de la portée statique de la fonction en cours, puis à l'aide de la portée dynamique si le nom n'est pas défini dans la portée statique. Si les recherches dans les portées statique et dynamique ne donnent aucun résultat, un symbole arbitraire est choisi et le message "[using <nom_qualifié>]" est imprimé. La procédure de résolution de nom peut être remplacée en qualifiant un identificateur à l'aide d'un nom de bloc, par exemple, "module.variable". En C, les fichiers source sont considérés comme des modules nommés en utilisant le nom du fichier sans ".c"
- prompt
- prompt "chaîne"
- Affiche l'invite dbx ou remplace l'invite par "chaîne".
- quit
- Permet de quitter dbx (programme terminé).
- registres
- Imprime le contenu de tous les registres généraux, des registres de contrôle système, des registres à virgule flottante et du registre d'instructions en cours.
Pour afficher les registres à virgule flottante, utilisez la sous-commande dbx "unset noflregs".
- Il est possible d'afficher ou d'affecter les registres individuellement en utilisant les noms de registre prédéfinis suivants : r0 à $r31 pour les registres généraux, fr0 à $fr31 pour les registres à virgule flottante, sp, iar, cr, link, respectivement pour le pointeur de pile, le compteur ordinal, le registre des conditions et le registre des liens.
- run [<arguments>] [< <nom_fichier> ] [> <nom_fichier> ]
- [>> <nom_fichier> ] [>! <nom_fichier> ]
- [2> <nom_fichier> ] [2>> <nom_fichier> ]
- [>& <nom_fichier> ] ]>>& <nom_fichier> ]
- rerun [<arguments>] [< <nom_fichier> ] [> <nom_fichier>
]
- [>> <nom_fichier> ] [>! <nom_fichier> ]
- [2> <nom_fichier> ] [2>> <nom_fichier> ]
- [>& <nom_fichier> ] ]>>& <nom_fichier> ]
- Lance l'exécution du fichier objet et la transmission des arguments sous forme d'arguments de ligne de commande ; < ou > peuvent être utilisés pour réorienter l'entrée ou la sortie à la manière d'un shell. Lorsque "rerun" est utilisé sans aucun argument, la liste d'arguments précédente est transmise au programme ; sinon, le traitement est identique à celui de "run".
Remarque : Les arguments des commandes run et rerun ne sont actuellement pas pris en charge.
- return
- return <procédure>
- Poursuit le traitement jusqu'à ce qu'un retour à <procédure> soit exécuté ou jusqu'à ce que la procédure en cours revienne, si aucune n'est indiquée.
- set <nom>
- set <nom> = <expression>
- La commande set définit les valeurs des variables dbx. Les noms de ces variables ne peuvent pas entrer en conflit avec les noms présents dans le programme en cours de débogage et sont développés sous la forme de l'expression correspondante dans les autres commandes.
Utilisez "unset" pour supprimer une définition de variable. Voir aussi "help set_variables"
pour connaître les définitions des variables préalablement définies.
- skip [<nombre>]
- Reprend et ignore le prochain point d'arrêt. Si un "nombre" est indiqué, ignore les "nombre" points d'arrêt suivants.
- status [> <nom_fichier> ]
- status more [> <nom_fichier> ]
- Affiche les commandes trace et stop actuellement actives avec les sous-commandes dbx associées et le nombre de thread tskip restants.
- step
- step <nombre>
- Exécute une ligne. Si un nombre est indiqué, exécute les n lignes suivantes, n représentant le nombre indiqué. La différence entre la commande "step" et la commande "next" réside dans le fait que si la ligne contient un appel à une procédure ou une fonction, la commande "step" intègre cette procédure ou cette fonction alors que la commande "next" ne le fera pas.
Remarque : Voir aussi : set_variables stepignore.
- stepi
- stepi <nombre>
- Exécute une instruction unique. Si un nombre est indiqué, exécute les n instructions suivantes, n étant le nombre fourni.
- !stop if <condition>
- stop at <numéro_ligne> ![if <condition>]
- stop in <procédure> ![if <condition>]
- !stop <variable> [if <condition>]
- !stop <variable> at <numéro_ligne> [if <condition>]
- !stop <variable> in <procédure> [if <condition>]
- !stop on load ["<module>"] [if <condition>]
- !stop on load ["<module>(<membre>)"] [if <condition>]
- Stoppe l'exécution lorsque la ligne indiquée est atteinte, lorsque la procédure ou la fonction indiquée est entamée, lorsque la variable indiquée est modifiée, lorsque le module indiqué est chargé ou déchargé ou lorsque la condition a pour valeur true.
Remarque : ! n'est pas actuellement pris en charge.
- unset <nom>
- Supprime la définition de <nom>
- whatis <nom>
- Imprime la déclaration du nom indiqué.
- where [startframe endframe] [> <nom_fichier>]
- Imprime une trace de pile des procédures et fonctions actives associées aux numéros de trame startframe à endframe. Définissez stack_details
pour obtenir une trace de pile prolixe.
- visual <nom_hôte> <numéro_port>
- Associe le débogueur IDBX à un plan de travail d'interface utilisateur au niveau de l'hôte et du port indiqués pour le démon d'interface utilisateur.