Pouvez-vous publier vos commandes les plus délicates et utiles pendant que vous exécutez un débogueur comme gdb ou dbx.
Lancer gdb avec une interface utilisateur textuelle
gdb -tui
Depuis gdb 7.0, il y a débogage réversible , donc vos nouvelles commandes préférées sont:
* reverse-continue ('rc') -- Continue program being debugged but run it in reverse
* reverse-finish -- Execute backward until just before the selected stack frame is called
* reverse-next ('rn') -- Step program backward, proceeding through subroutine calls.
* reverse-nexti ('rni') -- Step backward one instruction, but proceed through called subroutines.
* reverse-step ('rs') -- Step program backward until it reaches the beginning of a previous source line
* reverse-stepi -- Step backward exactly one instruction
* set exec-direction (forward/reverse) -- Set direction of execution.
Au lieu de lancer GDB avec le paramètre "-tui", vous pouvez également passer en mode texte après un certain temps en utilisant en tapant "wh".
thread apply all bt
ou thread apply all print $pc
: Pour découvrir rapidement ce que font toutes les discussions.
Par exemple, les macros définies dans stl-views.gdb
En utilisant le -command=<file with gdb commands>
option lors du lancement de gdb. Pareil que -x <command file>
. Ce fichier de commandes peut contenir des commandes gdb comme des points d'arrêt, des options, etc. Utile dans le cas où un exécutable particulier doit être soumis à des exécutions de débogage successives à l'aide de gdb.
gdb de script est une bonne astuce, à part que j'aime activer/désactiver le verrouillage du programmateur pour empêcher l'exécution d'autres threads lorsque vous en entrez un.
Au lieu de démarrer gdb avec l'option -tui pour voir un processus enfant qui contient un écran qui met en évidence où se trouve la ligne de code en cours d'exécution dans votre programme, sautez dans et hors de cette fonction avec C-x o et C-x a. Ceci est utile si vous utilisez la fonctionnalité et ce que vous ne devez pas temporairement l'utiliser afin que vous puissiez utiliser la flèche vers le haut pour obtenir une commande précédente.
threads info pour lister tous les threads actifs, et f (#) -> # numéro de thread vers lequel vous souhaitez basculer
parfois j'utilise gdb pour convertir de l'hex en décimal ou binaire, c'est très pratique au lieu d'ouvrir une calculatrice
Cela peut être utile, je suis sûr que cela pourrait être amélioré, aidez-nous à vous féliciter:
define mallocinfo
set $__f = fopen("/dev/tty", "w")
call malloc_info(0, $__f)
call fclose($__f)
Pour déboguer STL, ajoutez du contenu à .gdbinit, suivez ces instructions: