Tengo una función que se llama una gran cantidad de veces y, finalmente, segfaults.
Sin embargo, no quiero establecer un punto de interrupción en esta función y detenerme cada vez que se llama, porque estaré aquí durante años.
Escuché que puedo establecer un counter
en GDB para un punto de interrupción, y cada vez que se alcanza el punto de interrupción, el contador disminuye y solo se activa cuando counter
= 0.
¿Es esto exacto y, de ser así, cómo lo hago? Proporcione el código gdb para establecer dicho punto de interrupción.
gdb
breakpoints
Tony Stark
fuente
fuente
Respuestas:
Lea la sección 5.1.6 del manual de GDB. Lo que debe hacer primero es establecer un punto de interrupción, luego establecer un 'recuento de ignorar' para ese número de punto de interrupción, por ejemplo
ignore 23 1000
.Si no sabe cuántas veces debe ignorar el punto de interrupción y no desea contar manualmente, lo siguiente puede ayudar:
fuente
continue <n>
Este es un método conveniente que omite los
n - 1
tiempos de interrupción del último hit (y por lo tanto se detiene en el n-ésimo hit):C Principal
Uso:
Sesión del BGF:
fuente