【问题标题】:TTY in perl, explaination and some examplesperl 中的 TTY,解释和一些例子
【发布时间】:2013-07-29 03:23:02
【问题描述】:

所以我尝试在另一个 perl 调试器中运行一个 perl 调试器。我一直在 perl 中阅读 tty 是解决方案。有人可以向我解释 tty 的含义(它是终端类型吗?)以及它有什么用处?这是我读到的地方: http://search.cpan.org/~rjbs/perl-5.18.0/lib/perl5db.pl#$CreateTTY 我尝试使用 tty 的原因是因为我问了这个问题: Pass argument to perl file in debugger and set breakpoint in file executed by system 感谢所有回答的人,你们告诉我的越多,我得到的想法就越好:)

【问题讨论】:

    标签: perl debugging terminal tty


    【解决方案1】:

    TTY(电传打字机的缩写)基本上是一个连接到终端的特殊输入或输出文件句柄——即用户输入。有关详细信息,请参阅:


    这是初学者需要了解的内容(很难说更多,因为您没有解释使用 TTY 需要做什么):

    • 在 Unix 上,它通常映射到 /dev/tty 设备或类似设备

    • 您可以在 Perl 中使用 -t test for it


    就调试器而言,至少需要了解两件事(如果您打算使用 TTY,最后一段是最重要的)。所有数据均来自perldoc perldebug

    1. p expr 打印到$DB::OUT 文件句柄(NOT STDOUT),而该句柄又对/dev/tty 开放。

      认为这可能由PERLDB_OPTS 中的LineInfo 选项控制,但从未使用过它,所以不确定。

    2. 可能会受到以下$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$$"。未检查此文件的正确所有权,因此理论上可能存在安全隐患。

    【讨论】:

    • 我正在尝试在文件中设置断点,该文件是使用系统命令从不同文件调用的
    • 有没有办法可以在 file2.pl 中设置断点,该断点是使用系统命令或 eval 命令从 file1.pl 调用的,然后当我运行 file1.pl 时,我在 file2 处中断.pl???
    • @ban - 是的。但是您的问题是关于 TTY 是什么,而不是关于设置断点。
    猜你喜欢
    • 2011-04-26
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多