【发布时间】:2015-05-18 22:23:04
【问题描述】:
我有两次调用 Perl 调试器的情况。例如progA.pl:
use warnings;
use strict;
system("perl -d progB.pl");
和progB.pl:
use warnings;
use strict;
$DB::single=1;
print "Hello\n";
然后我运行progA.pl 喜欢:
$ perl -d progA.pl
这不是很好。在我的系统(Ubuntu 14.04 和 Perl 版本 5.18)上,调试器出现了一些错误。例如:
### forked,但不知道如何创建新的 TTY。 #########由于两个调试器争夺同一个TTY,输入严重纠缠。
我知道如何在 xterms 中将输出切换到不同的窗口, 仅限 OS/2 控制台和 Mac OS X Terminal.app。对于手动开关, 将创建的 TTY 的名称放在 $DB::fork_TTY 中,或者定义一个 函数 DB::get_fork_TTY() 返回 this。
在类 UNIX 系统上,可以获取给定的 TTY 的名称 通过键入 tty 来打开窗口,然后通过 sleep 断开外壳与 TTY 的连接 1000000。
它还尝试打开一个新的终端窗口,标题为Dauther Perl debugger,但新终端只显示错误sh: 1: 3: Bad file descriptor。
如何避免这些问题?我只想让调试器正常工作。
【问题讨论】:
-
为什么要使用 system() 在调试模式下启动 Perl?
-
我不在 linux 机器上,所以无法测试,但这样的东西应该可以工作:
system('xterm -e perl -d progB.pl');
标签: perl