J'ai une fonction qui est appelée un grand nombre de fois, et éventuellement des segfaults.
Cependant, je ne veux pas définir un point d'arrêt à cette fonction et m'arrêter après chaque appel, car je serai ici pendant des années.
J'ai entendu dire que je pouvais définir un counter
dans 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 n'est déclenché que lorsque le counter
= 0.
Est-ce exact et si oui, comment puis-je le faire? Veuillez donner le code gdb pour définir un tel point d'arrêt.
gdb
breakpoints
Tony Stark
la source
la source
Réponses:
Lisez la section 5.1.6 du manuel GDB. Ce que vous devez faire est d'abord de définir un point d'arrêt, puis de définir un «compte d'ignorer» pour ce numéro de point d'arrêt, par exemple
ignore 23 1000
.Si vous ne savez pas combien de fois ignorer le point d'arrêt et que vous ne souhaitez pas compter manuellement, ce qui suit peut vous aider:
la source
continue <n>
C'est une méthode pratique qui ignore les
n - 1
heures du dernier point d'arrêt de hit (et s'arrête donc au n-ième hit):principal c
Usage:
Session GDB:
la source