En mi programa C++ estoy usando una biblioteca que "enviará?" un Sigtrap en ciertas operaciones cuando lo estoy depurando (usando gdb como depurador). Luego puedo elegir si deseo continuar o detener el programa. Si elijo continuar, el programa funciona como se espera, pero establecer puntos de interrupción personalizados después de que se haya capturado un Sigtrap hace que el depurador/programa se cuelgue.¿Qué causa un Sigtrap en una sesión de depuración
Así que aquí están mis preguntas:
- ¿Qué causa una SIGTRAP tales? ¿Es una línea de código sobrante que puede eliminarse o es causada por el depurador cuando "encuentra algo que no le gusta"?
- ¿Es un sigtrap, en general, algo malo, y si es así, por qué el programa se ejecuta sin problemas cuando compilo una versión y no una versión de depuración?
- ¿Qué indica un Sigtrap?
Este es un enfoque más general a una pregunta que he publicado ayerBoost Filesystem: recursive_directory_iterator constructor causes SIGTRAPS and debug problems.
Creo que mi pregunta fue muy específica, y no quiero que resuelvas mi problema sino que me ayudes (y espero que otros) a comprender el trasfondo.
Muchas gracias.
Esto puede explicar los SIGTRAP inexplicables: http://stackoverflow.com/questions/2307621/does-getting-random-sigtrap-signals-in-mingw-gdb-is-a-sign-of-memory-corruption – sarnold
La información en este hilo parece prometedora. La biblioteca que estoy usando (boost :: filesystem) requiere dlls estáticas para vincularse también con el programa. Así que supongo que hay un problema conmigo, incluso de la manera incorrecta, o el uso de dlls incorrecto ... – zitroneneis