2012-02-16 14 views
7

Estoy tratando de rastrear un error de segmentación que he podido aislar a solo unas pocas líneas de código en diferentes versiones de Perl. Yo uso perlbrew para administrar mis diversas versiones para el desarrollo y las pruebas, pero no crea perl con símbolos de depuración, por lo que usar gdb para analizar el archivo de volcado del núcleo es bastante inútil.Usando perlbrew para construir un perl con símbolos de depuración

Entonces, ¿cuál es la mejor manera de tener habilitada la compilación perlbrew con símbolos de depuración? Y si es posible, me gustaría poder tenerlo como un perl por separado al que podría cambiar en lugar de anular el estándar para la misma versión.

Respuesta

11
perlbrew install -v 5.14.2 --as=5.14.2d -DEBUGGING=-g 

(--as pone bajo un nombre diferente, para que pueda mantener su actual construye.)

También hay los siguientes, que incluye lo anterior y otras cosas que seguramente no es necesario:

perlbrew install -v 5.14.2 --as=5.14.2d -DEBUGGING=both 

Consulte INSTALL en el directorio raíz de la distribución de Perl.

+0

Esto parece justo lo que estaba buscando, sin embargo, parece que no funciona. Ejecuté este comando 'perlbrew install perl-5.8.8 --as = 'perl-5.8.8-debug' -DEBUGGING = both'. Luego, para inspeccionarlo con gdb ejecuté 'gdb/home/mpeters/perl5/perlbrew/perls/perl-5.8.8-debug/bin/perl' y gdb todavía dice" Lectura de símbolos desde/home/mpeters/perl5/perlbrew/perls/perl-5.8.8-debug/bin/perl ... (no se encontraron símbolos de depuración) ", así que obviamente todavía me falta algo. – mpeters

+0

'-DEBUGGING = both' podría no haber existido en aquel entonces? Verifique el archivo 'INSTALL' para ver la versión correcta de la versión. ('-Doptimise = -g' debería funcionar incluso en ese momento). Deberías mencionarlo cuando utilizas un software antiguo. (5.8 se lanzó por primera vez hace 10 años. 5.8 y 5.10 ya no son compatibles, y 5.12 está a punto de ser EOLed también). – ikegami

+0

Gracias por la pista sobre las opciones que son específicas de la versión. Fui con 'perlbrew install perl-5.8.8 --as = 'perl-5.8.8-debug' -Doptimize = '- g'' y funcionó a las mil maravillas. Gracias. – mpeters

Cuestiones relacionadas