Uso perldb en emacs para depurar scripts de Perl (en Linux). Funciona muy bien, hasta que estoy depurando un script que se bifurca. Si mi script se ejecuta un "tenedor", me sale esto:Cómo depurar scripts de Perl que horquilla
######### Forked, but do not know how to create a new TTY. #########
Since two debuggers fight for the same TTY, input is severely entangled.
I know how to switch the output to a different window in xterms
and OS/2 consoles only. For a manual switch, put the name of the created TTY
in $DB::fork_TTY, or define a function DB::get_fork_TTY() returning this.
On UNIX-like systems one can get the name of a TTY for the given window
by typing tty, and disconnect the shell from TTY by sleep 1000000.
Realmente me gustaría ser capaz de elegir un proceso (ya sea el padre o el niño) y continuar la depuración de ese proceso, al tiempo que permite que el otro continuar sin obstáculos. Un objetivo extenso sería una forma de continuar sin ambigüedad depurando AMBOS procesos, tal vez abriendo marcos adicionales en emacs para control y ventanas de código. Pero ser capaz de seguir depurando limpiamente uno de ellos sería una gran victoria.
¿Hay alguna manera de hacer esto en Perldb? Traté de seguir la sugerencia en este mensaje, pero no llegué a ningún lado.
¿O necesito alguna otra herramienta de depuración Perl? Si es el último, ¿qué depurador Perl proporciona el mejor soporte para la depuración multiproceso?
Si vas a seguir esta ruta, echa un vistazo a 'Devel :: Trace :: Fork'. – mob