85 votes

comment définir un "compteur" pour un point d'arrêt GDB

J'ai une fonction qui est appelé grand nombre de fois, et finalement de segmentation. Cependant, je ne veux pas définir un point d'arrêt à cette fonction et d'arrêter chaque fois que l'on l'appelle, parce que je vais être ici depuis des années. J'ai entendu dire que je peux mettre un counter de GDB pour un point d'arrêt, et à chaque fois que le point d'arrêt est atteint, le compteur est décrémenté, et seulement est déclenchée lorsque l' counter = 0. Est-ce exact et si oui, comment dois-je faire? Merci de donner le gdb code pour l'établissement de ce point d'arrêt.

166voto

Kilian Foth Points 8619

Lisez la section 5.1.6 du manuel de la BDG. Ce que vous devez faire, c'est d'abord définir un point d'arrêt, puis définir un «nombre d'ignorants» pour ce numéro, par exemple ignore 23 1000 .

Si vous ne savez pas combien de fois ignorer le point d'arrêt et que vous ne voulez pas compter manuellement, voici ce qui pourrait vous aider:

   ignore 23 1000000   # set ignore count very high.

  run                 # the program will SIGSEGV before reaching the ignore count.
                      # Once it stops with SIGSEGV:

  info break 23       # tells you how many times the breakpoint has been hit, 
                      # which is exactly the count you want
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X