2011-03-05 9 views
7

Estoy tratando de encontrar una manera de iniciar un proceso de perl bajo el depurador, pero simplemente comencé a ejecutar automáticamente sin detenerme en la primera instrucción y pidiendo que ingrese 'c' para iniciarlo. Este módulo es operado por un sistema más grande y necesito poder periódicamente (en función de las condiciones externas) interrumpir el programa a través de la señal de interrupción, examinar algunas estructuras de datos y hacer que continúen.have perl depurador no se detiene en el primer enunciado

Obviamente, puedo hacer que el programa de supervisión inicie mi proceso utilizando "perl -d myProcess", pero cómo lograr que se ejecute sin la interrupción inicial. ¿Alguien sabe cómo hacer que esto suceda?

Much Thanks.

+0

algo con el archivo '.perldb', es de esperar que alguien pueda ampliar esta en una respuesta adecuada. – daxim

Respuesta

7

Gracias. Esa fue una gran pista. Veo varias opciones, incluido "NonStop".

Parece que usar la línea PERLDB_OPTS="NonStop" perl -d myprog.pl & hace el truco. Luego solo lo kill -INT <pid> y fg para ponerlo en el depurador. Después de 'c' continuar la ejecución y bg, así continuará.

2

También puede agregar esta opción de configuración al archivo .perldb. El formato del archivo de configuración es un poco inusual y no tan bien documentado, así que aquí va

DB::parse_options("NonStop=1"); 

Otras opciones útiles:

DB::parse_options("dumpDepth=3"); 
DB::parse_options("PrintRet=0"); 
$DB::deep = 1000; 
Cuestiones relacionadas