Как отлаживать скрипты Perl, которые разветвляются

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

9
задан Kevin Panko 6 July 2011 в 16:47
поделиться