Я использую perldb в emacs для отладки сценариев Perl (в Linux). Прекрасно работает, пока я не отлаживаю скрипт, который разветвляется. Если мой скрипт выполняет «форк», я получаю это:
######### 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.
Мне бы очень хотелось иметь возможность выбрать один процесс (родительский или дочерний) и продолжить отладку этого процесса, в то же время позволяя другому продолжать беспрепятственно. Растягивающаяся цель - это способ однозначно продолжить отладку ОБА процессов, возможно, открыв дополнительные кадры в emacs для окон управления и кода. Но возможность чистого продолжения отладки одного из них была бы большой победой.
Есть ли способ сделать это в perldb? Я пытался следовать предложению в этом сообщении, но ничего не получил с ним.
Или мне нужен какой-нибудь другой инструмент отладки Perl? Если последнее, какой отладчик Perl обеспечивает лучшую поддержку многопроцессной отладки?