所以我试图在另一个 perl 调试器中运行一个 perl 调试器。我一直在 perl 中阅读 tty 是解决方案。有人可以向我解释 tty 的含义(它是终端类型吗?)以及它有什么用处?这是我读到它的地方: http : //search.cpan.org/~rjbs/perl-5.18.0/lib/perl5db.pl# $CreateTTY 我尝试使用 tty 的原因是因为我问了这个问题: 在调试器中将参数传递给 perl 文件并在系统执行的文件中设置断点 感谢所有回答的人,你们告诉我的越多,我得到的想法就越好 :)
1 回答
TTY(电传打字机的缩写)基本上是一个连接到终端的特殊输入或输出文件句柄——即用户输入。有关详细信息,请参阅:
这是初学者需要了解的内容(很难说更多,因为您没有解释使用 TTY 需要做什么):
在 Unix 上,它通常映射到
/dev/tty
设备或类似设备您可以使用Perl对其进行测试
-t
至于调试器,至少需要知道两件事(如果你打算玩 TTY,最后一段是最重要的)。所有数据都近乎引用perldoc perldebug
p expr
打印到$DB::OUT
文件句柄(NOTSTDOUT
),而文件句柄又对/dev/tty
.我认为这可能是由
LineInfo
选项控制的,PERLDB_OPTS
但从未玩过它,所以不确定。可能受以下
$ENV{PERLDB_OPTS}
选项影响:TTY - 用于调试 I/O 的 TTY。
noTTY - 如果设置,调试器将进入 NonStop 模式并且不会连接到 TTY。如果被中断(或者如果控制通过 Perl 脚本中的 $DB::signal 或 $DB::single 的显式设置转到调试器),它会连接到启动时在 TTY 选项中指定的 TTY,或者连接到在运行时使用
Term::Rendezvous
您选择的模块。这个模块应该实现一个名为 new 的方法,该方法返回一个具有两种方法的对象: IN 和 OUT 。这些应该返回文件句柄以用于相应地调试输入和输出。新方法应该在启动时检查包含 $ENV{PERLDB_NOTTY} 值的参数,否则检查 "$ENV{HOME}/.perldbtty$$"。没有检查此文件的所有权,因此理论上可能存在安全隐患。