Violación de segmento

Te cuento, el sistema que desarrollo es para monitorear, es por esto que debe estar siempre corriendo. El problema es que cada un periodo aleatorio me sale una violación de segmento, la cual termina el proceso y por ende el monitoreo. Lo he corrido en gdb para realizar un backtrace pero ocurre en lugares distintos(consultando la BD, en la asignación de memoria compartida, etc). Quisiera saber, ¿Cómo puedo hacer para que el programa no finalice y siga monitoreando?
De antemano
Muchas Gracias.

1 respuesta

Respuesta
1
Sinceramente no estoy muy seguro de lo que te voy a decir porque no lo he probado pero creo que funciona.
Veras, en Linux, los eventos como el core dumped(violación de segmento) producen un numero o señal al sistema, con ese numero y una función de señales del sistema podemos ignorarla. La función esta en la librería signal. H y se le llama signal(), pasándole dos parámetros:
1º - El nº de la señal(en nuestro caso 11)
2º - Lo que Queremos hacer con ella(en nuestro caso SIG_IGN)
por tanto llamariamos a signal(11,SIG_IGN);
De todas formas ya te digo que lamento no serte de una ayuda segura en esto pero puedes consultar sobre esto en http://www.fie.us.es/~ramon/articulos/seminario-1.html
Aquí hay una tabla con todos los números de señales y te dice como tratarlas, etc...
Ánimo y Suerte!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas