Question

Pouvez-vous poster vos commandes les plus délicates et les plus utiles pendant que vous exécutez un débogueur comme gdb ou DBX.

Était-ce utile?

La solution

  1. retour de trace : complet avec des variables locales backtrace
  2. up , bas , Cadre : Déplacez-vous dans des cadres
  3. regarder : suspendre le processus quand une certaine condition est remplie
  4. impression réglée assez sur : Imprime sur le code source C bien formatés
  5. Consignation définie sur : Ouvrir une session de débogage session de montrer à d'autres pour le soutien
  6. set réseau d'impression sur : Tableau Jolie impression
  7. finition : Continuer jusqu'à la fin de la fonction
  8. enable et désactiver : activer / désactiver les points d'arrêt
  9. tbreak : Casser une fois, puis retirez le point d'arrêt
  10. : numéro de ligne en cours d'exécution
  11. info locals : Voir toutes les variables locales
  12. args info : Voir tous les arguments de la fonction
  13. : voir la source
  14. RBREAK : pause sur la fonction correspondant à une expression régulière

Autres conseils

gdb Démarrer avec une interface utilisateur textuelle

gdb -tui

À partir de gdb 7.0, il est débogage réversible , de sorte que votre nouveau favori les commandes 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 « -tui » PARAM pouvez également passer en mode texte après un certain temps à l'aide en tapant « wh ».

thread apply all bt ou thread apply all print $pc. Pour trouver rapidement ce que toutes les discussions font

Par exemple, les macros définies dans stl-views.gdb

En utilisant l'option -command=<file with gdb commands> lors du tir gdb. Identique à -x <command file>. Ce fichier de commandes peut contenir des commandes gdb comme des points d'arrêt, les options, etc. Elles sont utiles dans le cas où un exécutable particulier doit être mis par debug successives fonctionne avec gdb.

gdb de script est un bon truc, autre que j'aime programmateur de consigne de verrouillage marche / arrêt pour empêcher l'exécution d'autres threads lorsque vous entrez dans l'un.

Au lieu de commencer gdb avec l'option -tui pour voir un processus enfant qui contient un écran qui met en évidence où la ligne d'exécution du code est dans votre programme, sauter dans et hors de cette fonction avec C-x o et C-x a. Ceci est utile si vous utilisez la fonction et ce que temporairement pas l'utiliser pour que vous puissiez utiliser la flèche haut pour obtenir une commande précédente.

  • Utiliser .gdbinit (démarrage fichier dans lequel vous pouvez écrire des macros et appeler à partir gdb). Placez .gdbinit dans votre répertoire personnel afin qu'il soit ramassé tous les temps gdb est chargé
  • info threads à la liste tous les fils actifs, et f (#) -> # Numéro de fil que vous souhaitez passer à

  • quelque temps j'utiliser gdb convertir hex en décimal ou binaire, son très pratique au lieu d'ouvrir une calculatrice

    • p / j 0x10 -> donne équivalent décimal de 0x10
    • p / t 0x10 -> binaire équivalent de 0x10
    • p / x 256 -> hex équivalent de 256

Cela peut être utile, je suis sûr qu'il pourrait être amélioré si, aider à accueillir:

define mallocinfo
  set $__f = fopen("/dev/tty", "w")
  call malloc_info(0, $__f)
  call fclose($__f)

Pour debug STL, ajouter du contenu à .gdbinit, suivez les instructions suivantes:

http://www.yolinux.com/TUTORIALS/GDB-Commands. html # STLDEREF

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top