Normalmente lo dejaría sin manejar y el depurador (gdb, Eclipse CDT) me mostraría la pila de llamadas. Lamentablemente, el código está siendo invocado por una biblioteca de terceros que absorbe todas las excepciones. Puedo detectar la excepción antes de la biblioteca de terceros, pero no puedo ver la pila de llamadas (¿desenrollar la pila?).Encontrar donde std :: out_of_range es arrojado por std :: vector.at()
¿Cómo puedo saber dónde se produjo la excepción?
Votación máxima y gracias! Sí, en este caso particular ayudaron :) Pero para el futuro: ¿puedo filtrar de acuerdo con el tipo de excepción? La biblioteca de terceros usa excepciones al control de flujo ... por lo que recibiría demasiadas notificaciones sobre excepciones lanzadas. – Ali
@ Ali: Lo siento, lo que sé está en el enlace. No tengo ninguna experiencia real con esto. No veo una forma de especificar el tipo de excepción. –
Me gustaría aceptar su respuesta pero, por favor, agregue más información para el público general sobre qué hacer (escriba catch throw en la consola de gdb) y este enlace: http://stackoverflow.com/q/1109922/341970 – Ali