2012-03-01 4 views
6

Tengo un tool para generar instantáneas de mi programa C mientras se está ejecutando, en forma de archivos corefiles.posible revivir un archivo core dentro de un programa en ejecución?

¿Es posible volver a dar vida a estos archivos centrales como programas ejecutables? Y si es así, ¿cómo lo hago? ¿Hay alguna biblioteca que haga esto ya?

Estoy trabajando en sistemas * nix.

+0

Me parece recordar que hubo un "compilador" de Perl que hizo algo similar. – ninjalj

Respuesta

2

Sí, en teoría.

Si su instantánea es un volcado completo de la memoria completa de su programa, la pila, el montón, junto con la PC, es posible volver a colocar este volcado en la memoria y ejecutar el proceso de ejecución nuevamente. Pero deberás hacer esto en kernel land, creo.

0

GDB lo haremos por usted. Lo he usado para programas que se han bloqueado, creando un núcleo, pero esto no debería ser diferente, en teoría.

+0

¿Puedes explicarme cómo hacerlo con gdb? Puedo explorar un archivo core con gdb ('archivo_gdb executable core_file') pero esto no es lo mismo que convertir el archivo core en un archivo ejecutable – horseyguy

+0

Oh ... Creo que entendí mal tu objetivo final. Entonces, ¿el objetivo es permitir que la gente 'reanude' el ejecutable de una manera similar a cómo se ejecutó antes? Si es así, probablemente tomaría un curso de acción diferente y serializaría los datos que me importaban a un archivo y buscaría ese archivo cuando comenzara mi ejecutable. – Hoons

Cuestiones relacionadas