Outils pour utilisateurs

Outils du site


prog:gdb

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
prog:gdb [2019/04/06 12:51] – Ajout du breapoint pour les sanitizers rootprog:gdb [2024/04/05 11:31] (Version actuelle) – Complétion des breakpoints root
Ligne 10: Ligne 10:
   gdb program dump   gdb program dump
   gdb -c dump   gdb -c dump
 +
 +=====Options=====
 +
 +====Par défaut====
 +
 +Ajouter dans le fichier ''$HOME/.gdbinit'' les commandes à exécuter au démarrage. Par exemple ''set height 0''.
 +
 +====Description====
 +
 +Ne plus avoir de points d'arrêt quand l'affichage d'une donnée prend plus que la taille de l'écran (''bt'' ou ''display'' notamment).
 +
 +=====Points d'arrêt=====
 +
 +  * La liste
 +
 +  info breakpoints
 +  info watchpoints
 +
 +  * Les enlever
 +
 +  clear
 +  delete n
 +
 +  * Les désactiver
 +
 +Certaines applications génèrent beaucoup d'exceptions.
 +
 +  handle SIGSEGV nostop noprint pass
 +
 +  * Suivre les enfants / fork
 +
 +  set follow-fork-mode child
 +
 +====Conditions====
 +
 +  b Message.cpp:112 if i == 99
 +
 +====Exception====
 +
 +Mettre un point d'arrêt sur une exception qui est ''catch'' : ''catch throw''.
  
 =====Démarrer le débogage===== =====Démarrer le débogage=====
 +
 Avec un point d'arrêt sur le main : Avec un point d'arrêt sur le main :
  
Ligne 23: Ligne 64:
  
 ====La pile==== ====La pile====
 +
   * Seulement la hiérarchie des fonctions   * Seulement la hiérarchie des fonctions
  
Ligne 32: Ligne 74:
  
 ====Afficher le code==== ====Afficher le code====
 +
   * Afficher plus que la seule ligne en cours   * Afficher plus que la seule ligne en cours
  
Ligne 52: Ligne 95:
  
   * Touches haut et bas   * Touches haut et bas
 +
 Avant les touches haut et bas permettaient de faire défiler les commandes précédentes / suivantes. En mode TUI, haut et bas font défiler la fenêtre en cours. Il faut utiliser ''CTRL+P'' et ''CTRL+N''. #Simplicité… Avant les touches haut et bas permettaient de faire défiler les commandes précédentes / suivantes. En mode TUI, haut et bas font défiler la fenêtre en cours. Il faut utiliser ''CTRL+P'' et ''CTRL+N''. #Simplicité…
-=====Breakpoints===== 
-====La liste==== 
-  info breakpoints 
-  info watchpoints 
- 
-====Les enlever==== 
-  clear 
-  delete n 
- 
-====sanitizer==== 
-S'arrêter sur les messages du sanitizer qui ne font pas planter le programme : 
-  b __ubsan::ScopedReport::~ScopedReport 
-[[https://stackoverflow.com/questions/30809022/how-can-i-break-on-ubsan-reports-in-gdb-and-continue|How can I break on UBSan reports in gdb and continue?]] {{ :prog:gdb:c_-_how_can_i_break_on_ubsan_reports_in_gdb_and_continue_-_stack_overflow.mhtml |Archive du 06/04/2019}} 
  
 =====Naviguer dans le débogage===== =====Naviguer dans le débogage=====
 +
   * Avancer d'une ligne de code sans entrer dans une éventuelle sous-fonction   * Avancer d'une ligne de code sans entrer dans une éventuelle sous-fonction
  
Ligne 81: Ligne 113:
  
 =====Scripts===== =====Scripts=====
 +
   * Relancer l'application en boucle   * Relancer l'application en boucle
 +
 Utile si le plantage d'un programme est aléatoire Utile si le plantage d'un programme est aléatoire
  
Ligne 95: Ligne 129:
   run   run
   end   end
 +
 =====Bugs===== =====Bugs=====
 +
 ====decode_line_full: Assertion `state->canonical_names[i].suffix != NULL' failed.==== ====decode_line_full: Assertion `state->canonical_names[i].suffix != NULL' failed.====
 +
 Il faut supprimer tous les ''breakpoints'' / ''watchpoints''. Trouvé depuis LPCXpresso pour ARM. Il faut supprimer tous les ''breakpoints'' / ''watchpoints''. Trouvé depuis LPCXpresso pour ARM.
-[[https://mcuoneclipse.com/2014/10/11/failed-to-debug-with-gdb-breakpoints-or-expressions-on-non-existing-locations/|Failed to Debug with GDB: Breakpoints or Expressions on non-existing Locations | MCU on Eclipse]]{{ :prog:gdb:failed_to_debug_with_gdb_breakpoints_or_expressions_on_non-existing_locations_mcu_on_eclipse.mhtml |Archive}}+[[https://mcuoneclipse.com/2014/10/11/failed-to-debug-with-gdb-breakpoints-or-expressions-on-non-existing-locations/|Failed to Debug with GDB: Breakpoints or Expressions on non-existing Locations | MCU on Eclipse]] {{ :prog:gdb:failed_to_debug_with_gdb_breakpoints_or_expressions_on_non-existing_locations_mcu_on_eclipse_2020-01-07_11_27_12_am_.html |Archive du 11/10/2014 le 07/01/2020}}
  
-N'existe plus depuis la version v4.9 ([[https://bugs.launchpad.net/gcc-arm-embedded/+bug/1380026|Bug #1380026 “Internal GDB failure and crash for breakpoint with...”   Bugs   GNU ARM Embedded Toolchain]]{{ :prog:gdb:bug_1380026_internal_gdb_failure_and_crash_for_breakpoint_with..._bugs_gnu_arm_embedded_toolchain.mhtml |Archive}}).+N'existe plus depuis la version v4.9 ([[https://bugs.launchpad.net/gcc-arm-embedded/+bug/1380026|Bug #1380026 “Internal GDB failure and crash for breakpoint with...”   Bugs   GNU ARM Embedded Toolchain]] {{ :prog:gdb:bug_1380026_internal_gdb_failure_and_crash_for_breakpoint_with..._bugs_gnu_arm_embedded_toolchain_2020-01-07_11_27_21_am_.html |Archive du 11/10/2014 le 07/01/2020}}
prog/gdb.1554547866.txt.gz · Dernière modification : 2019/04/06 12:51 de root