Si su implementación en C++ biblioteca estándar es compatible con las funciones de TR1 fetestexcept
, feraiseexcept
y feclearexcept
(la mía no todavía, así que no puede probar esto) puede detectar cinco tipos de errores de punto flotante y luego se puede tirar cualquier excepciones usted quiere.
Consulte here para obtener una descripción de estas funciones.
También recomiendo la sección 12.3, "Gestión del Punto Medio Ambiente flotante" del libro Los ++ extensiones de biblioteca estándar de C: A Tutorial y Referencia por Pete Becker, ISBN-13: 9780321412997, para una excelente descripción de estas funciones con código de muestra.
alt text http://ak.buy.com/db_assets/prod_images/225/202452225.jpg
Puede calcular y almacenar el seguimiento de pila en el manejador de la señal usando backtrace_symbols, que al menos le da un seguimiento de la pila completa. –