2012-02-16 7 views
7

Sto cercando di rintracciare un errore di segmentazione che sono stato in grado di isolare solo su alcune righe di codice su diverse versioni di Perl. Uso perlbrew per gestire le mie varie versioni per lo sviluppo e il testing, ma non crea perl con i simboli di debug, quindi usare gdb per analizzare il core dump è abbastanza inutile.Uso di perlbrew per creare un perl con i simboli di debug

Quindi qual è il modo migliore per avere la compilazione perlbrew con i simboli di debug abilitati. E se possibile mi piacerebbe essere in grado di avere un perl separato che potrei passare invece di sostituire quello standard per la stessa versione.

risposta

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

(--as mette sotto un nome diverso, in modo da poter mantenere il vostro attuale costruisce.)

C'è anche la seguente, che comprende quanto sopra e cose che sicuramente non è necessario:

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

Vedere INSTALL nella directory principale della distribuzione Perl.

+0

Questo sembra proprio quello che stavo cercando, tuttavia non sembra funzionare. Ho eseguito questo comando 'perlbrew install perl-5.8.8 --as = 'perl-5.8.8-debug' -DEBUGGING = both'. Quindi per ispezionarlo con gdb ho eseguito 'gdb/home/mpeters/perl5/perlbrew/perls/perl-5.8.8-debug/bin/perl' e gdb dice ancora" Lettura dei simboli da/home/mpeters/perl5/perlbrew/perls/perl-5.8.8-debug/bin/perl ... (nessun simbolo di debug trovato) ", quindi ovviamente mi manca ancora qualcosa. – mpeters

+0

'-DEBUGGING = both' potrebbe non essere esistito allora? Controlla il file 'INSTALL' per la distro della versione corretta. ('-Doptimise = -g' dovrebbe funzionare anche allora). Dovresti menzionarlo quando usi un software antico. (5.8 è stato rilasciato per la prima volta 10 anni fa 5.8 e 5.10 non sono più supportati, e 5.12 sta per essere anche EOLed.) – ikegami

+0

Grazie per il suggerimento sulle opzioni specifiche della versione. Sono andato con 'perlbrew install perl-5.8.8 --as = 'perl-5.8.8-debug' -Doptimize = '- g'' e ha funzionato come un fascino. Grazie. – mpeters