Posiblemente tu programa no este terminando de manera correcta, posiblemente tienes algun bufferoverflow y el programa termina de forma inesperada y sin control de error. ejemplo
PROGAMA TOTALMENTE MAL:
#include<string.h>
void funcion() {
char arreglo[20];
memset(arreglo
,'A',100); //BUFFER OVERFLOW !! }
int main() {
funcion();
return 1;
}
Ejemplo llamando a la funcion vulnerable.
Ejemplo SIN llamar a la funcion vulnerable
El programa anterior es totalemente vulnerable APROPOSITO, termina en la funcion(), sin volver a la funcion principal.
Revisa tu codigo posiblemente tienes un BUG, si manejas memoria dinamica asegurate de no estar trabajando sobre apuntadores ya liberados, si trabajas con funciones como strcpy o similares segurate de cambiarlas por sus metodos seguros,
Asegurate de no salirte de los Limites del arreglo, algo muy comun es que si tienes un arreglo[10], y en el codigo realizas algo como for (i= 0; i <= 10, i++), en este caso estarias escribiendo UN SOLO byte fuera de la direccion del arreglo lo cual causaria un error de buffer overflow conocido como OFF by ONE
Saludos