Hice un programa muy simple que automatiza algunas cosas para mí. Lo escribí en C++ y se ejecuta en Windows. Al depurarlo con GDB desde el Codeblocks IDE, obtengo muchos puntos de ruptura de la nada. No tengo idea de qué podría estar causando este problema. Los puntos de interrupción parecen estar relacionados con problemas de memoria ... ya que cuando arreglé una fuga de memoria que había detectado, el número de puntos de interrupción obtuvo significativamente menos.Puntos de ruptura de la nada cuando se depura con gdb, dentro de ntdll
El exactamente lo que me dice es GDB:
Program received signal SIGTRAP, Trace/breakpoint trap.
In ntdll!TpWaitForAlpcCompletion() (C:\Windows\system32\ntdll.dll)
me sale esto muchas veces dentro de mi programa. Creo que podría estar haciendo algo muy mal, aunque el programa parece funcionar bien y logra lo que quiero que haga. ¿Alguien puede decirme cuál es el problema ya que no sé dónde mirar? Además, si no es un problema, ¿alguien sabe cómo desactivarlo, ya que esto me impide llegar a los puntos de interrupción que establecí?
¡Gracias de antemano!
EDITAR: (Agregando la salida del comando GDB's where): ¿Dónde puedo verificar lo que hace cada una de estas funciones, entonces puedo ver lo que estoy haciendo mal?
#0 0x76fefadd in ntdll!TpWaitForAlpcCompletion() from C:\Windows\system32\ntdll.dll
#1 0x0028e894 in ??()
#2 0x76fb272c in ntdll!RtlCreateUserStack() from C:\Windows\system32\ntdll.dll
#3 0x00657fb8 in ??()
#4 0x00657fb8 in ??()
#5 0x76f4b76a in ntdll!RtlDowncaseUnicodeChar() from C:\Windows\system32\ntdll.dll
#6 0x02070005 in ??()
#7 0x00000b10 in ??()
#8 0x0028e8dc in ??()
#9 0x76ff0b37 in ntdll!TpQueryPoolStackInformation() from C:\Windows\system32\ntdll.dll
#10 0x038b0000 in ??()
#11 0x00657fb8 in ??()
#12 0x76f4b76a in ntdll!RtlDowncaseUnicodeChar() from C:\Windows\system32\ntdll.dll
#13 0x6e6e9a5e in ??()
#14 0x038b0000 in ??()
#15 0x038b0000 in ??()
#16 0x00000000 in ??()
¿Cómo se ve el resto de la pila de llamadas cuando obtiene un SIGTRAP? Por favor, publique la salida del comando GDB "where". –
Gracias por su respuesta, anexaré el resultado de "dónde" en la pregunta. Editando ahora ... – Lefteris