0

そのため、別の perl デバッガー内で perl デバッガーを実行しようとしています。perl で tty を読み続けることが解決策です。誰かが tty の意味 (端末タイプですか?) とそれがどのように役立つかを説明できますか? これは私が読んだ場所です: http://search.cpan.org/~rjbs/perl-5.18.0/lib/perl5db.pl# $CreateTTY 私が tty を使おうとしている理由は、私が尋ねたこの質問のためです: デバッガーで perl ファイルに引数を渡し、システムによって実行されるファイルにブレークポイントを設定します 答えてくれたすべての人に感謝します。

4

1 に答える 1

0

TTY (teletype の略) は基本的に、端末に接続する特別な入力または出力ファイルハンドル、つまりユーザー入力です。詳細については、次を参照してください。


これは、初心者のために知っておく必要があることです (TTY で何をする必要があるかを説明していないので、これ以上言うのは難しいです):

  • Unix では、通常、/dev/ttyデバイスなどにマップされます

  • Perlで使用してテストできます-t


デバッガに関しては、少なくとも 2 つのことを知っておく必要があります (TTY で遊ぶつもりなら、最後の段落が最も重要です)。すべてのデータはperldoc perldebugからほぼ引用されています

  1. p expr$DB::OUTはファイルハンドル ( NOT ) に出力しSTDOUT、それは で開かれ/dev/ttyます。

    これはオプションによって制御される可能性があると思いますが、それで遊んだことがないのでわかりません。LineInfoPERLDB_OPTS

  2. $ENV{PERLDB_OPTS}次のオプションの影響を受ける可能性があります。

    • TTY - I/O のデバッグに使用する TTY。

    • noTTY - 設定されている場合、デバッガーは NonStop モードになり、TTY に接続しません。中断された場合 (または、Perl スクリプトから $DB::signal または $DB::single を明示的に設定してデバッガーに制御が移った場合)、起動時に TTY オプションで指定された TTY に接続するか、Term::Rendezvous選択したモジュールを使用して実行します。

      このモジュールは、 IN と OUT の 2 つのメソッドを持つオブジェクトを返す new という名前のメソッドを実装する必要があります。これらは、対応する入出力のデバッグに使用するファイルハンドルを返す必要があります。新しいメソッドは、起動時に $ENV{PERLDB_NOTTY} の値を含む引数を検査するか、それ以外の場合は "$ENV{HOME}/.perldbtty$$" を検査する必要があります。このファイルは適切な所有権を検査されていないため、理論的にはセキュリティ上の問題が発生する可能性があります。

于 2013-07-29T07:46:43.003 に答える