Я использую 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 обеспечивает лучшую поддержку многопроцессорной отладки?