Estoy portando un programa de Windows en Linux. Mi programa usa el manejo de excepciones estructurado de Windows (SEH). Linux no admite el manejo estructurado de excepciones, sin embargo, proporciona manejo de señales. Podemos anular la señal para desarrollar SEH como paradigma.Manejo de excepciones en linux
vez que son capaces de filtrar la excepción de Windows ofrece tres alternativas flujos de control de ejecución:
1) EXCEPTION_EXECUTE_HANDLER: Ejecutar manejador 2) EXCEPTION_CONTINUE_SEARCH: Desviar la excepción siguiente bloque (si no existe entonces a OS) 3) EXCEPTION_CONTINUE_EXECUTION: continúe la excepción de la instrucción donde se ha producido la interrupción.
¿Cómo puedo lograr este control fluye en Linux. En Linux, una vez que maneja la señal, el programa inicia la ejecución desde donde se ha interrumpido. ¿Cómo desarrollar los paradigmas continue_search y execute_handler?
Gracias de antemano
Gracias por su respuesta. – Utkarsh
Estoy usando el lenguaje C++. Es posible que deba extraer esta funcionalidad y crear un archivo de objeto compartido. También me temo si puedo admitir el manejo de señal dentro de la biblioteca compartida. Además, ¿qué pasa si el desarrollador de la aplicación ha anulado la señal con algún otro controlador. – Utkarsh
He leído acerca de la sigaction. Como ha descrito, devuelve el control a donde lo dejó. Pero, también requiero saltar/ejecutar un código particular sin pasar por el flujo existente (ejecutar el bloqueo catch y continuar la búsqueda en los bloques de arriba). No estoy seguro de cómo lograr esta funcionalidad. – Utkarsh