argra****@users*****
argra****@users*****
2007年 9月 7日 (金) 00:45:29 JST
Index: docs/perl/5.6.1/perldebug.pod diff -u docs/perl/5.6.1/perldebug.pod:1.7 docs/perl/5.6.1/perldebug.pod:1.8 --- docs/perl/5.6.1/perldebug.pod:1.7 Thu Sep 6 04:40:47 2007 +++ docs/perl/5.6.1/perldebug.pod Fri Sep 7 00:45:29 2007 @@ -26,13 +26,14 @@ =end original -Perl を -d スイッチを付けて起動すれば、スクリプトは Perl ソースデバッガ +Perl を B<-d> スイッチを付けて起動すれば、スクリプトは Perl ソースデバッガ 上で実行されることになります。 これは対話的な Perl 環境のように動作し、 ソースコードの表示、ブレークポイントの設定、スタックのバックトレース、 変数の値の変更、などを実行するデバッガコマンドを入力できます。 これはとても便利なので、単にやりたいことを対話的に試すために -デバッガを起動するようになるでしょう。以下は例です。 +デバッガを起動するようになるでしょう。 +例えば: $ perl -d -e 42 @@ -111,7 +112,7 @@ =end original -デバッガは以下のコマンドを理解します。 +デバッガは以下のコマンドを理解します: =over 12 @@ -404,7 +405,7 @@ =end original -指定行付近のウィンドウ (数行以上のコード) をリスト表示します。 +指定行付近のウィンドウ (数行のコード) をリスト表示します。 =item . @@ -596,7 +597,7 @@ =end original -I<line>で指定されたブレークポイントを削除します。 +I<line> で指定されたブレークポイントを削除します。 I<line> が省略されると、 まさに実行しようとしている行のブレークポイントを削除します。 @@ -929,8 +930,8 @@ =end original 最近の指定数値分のコマンドを表示します。 -2 文字以上のコマンドのみが表示されます。I<number> が省略 -されると、全てを表示します。 +2 文字以上のコマンドのみが表示されます。 +I<number> が省略されると、全てを表示します。 =item q or ^D @@ -1171,12 +1172,24 @@ =item C<inhibit_exit> +=begin original + If 0, allows I<stepping off> the end of the script. +=end original + +0 だと、スクリプトの最後で I<プログラムを終了する> ことを認めます。 + =item C<PrintRet> +=begin original + Print return value after C<r> command if set (default). +=end original + +設定されると(デフォルト)、C<r> コマンドの後に返り値を表示します。 + =item C<ornaments> Affects screen appearance of the command line (see L<Term::ReadLine>). @@ -1314,7 +1327,7 @@ rc ファイルが読み込まれた後、デバッガは C<$ENV{PERLDB_OPTS}> 環境変数を 読み込み、デバッガのプロンプトから `O ...' として入力されたかのように -パーズします。 +パースします。 初期化オプション C<TTY>, C<noTTY>, C<ReadLine>, C<NonStop> も ここで設定できます。 @@ -1345,8 +1358,13 @@ =item C<TTY> +=begin original + The TTY to use for debugging I/O. -(TBT) + +=end original + +デバッグ I/O として TTY を使います。 =item C<noTTY> @@ -1356,6 +1374,8 @@ specified in the C<TTY> option at startup, or to a tty found at runtime using the C<Term::Rendezvous> module of your choice. +=begin original + This module should implement a method named C<new> that returns an object with two methods: C<IN> and C<OUT>. These should return filehandles to use for debugging input and output correspondingly. The C<new> method should @@ -1364,16 +1384,41 @@ inspected for proper ownership, so security hazards are theoretically possible. +=end original + +このモジュールは、2 つのメソッド C<IN> と C<OUT> をもつオブジェクトを +返すメソッド C<new> を実装する必要があります。 +これらはそれぞれ、デバッグ入力と出力のためのファイルハンドルを +返すようにします。 +C<new> メソッドは起動時に C<$ENV{PERLDB_NOTTY}> の値を含んでいる +引数を検査し、さもなければ C<"/tmp/perldbtty$$"> となります。 +このファイルは適切な所有権について検査されないので、 +理論的にはセキュリティの問題が起こり得ます。 + =item C<ReadLine> +=begin original + If false, readline support in the debugger is disabled in order to debug applications that themselves use ReadLine. +=end original + +偽だと、デバッグするアプリケーション自身が ReadLine を使うために、 +readline 対応を無効にします。 + =item C<NonStop> +=begin original + If set, the debugger goes into non-interactive mode until interrupted, or programmatically by setting $DB::signal or $DB::single. +=end original + +設定されると、デバッガは中断されるか、プログラム的に $DB::signal か +$DB::single に設定されるまで、非対話的モードとなります。 + =back =begin original @@ -1382,7 +1427,7 @@ =end original -以下に C<$ENV{PERLDB_OPTS}> 変数を使った例を示します。 +以下に C<$ENV{PERLDB_OPTS}> 変数を使った例を示します: $ PERLDB_OPTS="NonStop frame=2" perl -d myprogram @@ -1394,8 +1439,14 @@ always spell them out in full for legibility and future compatibility. (TBT) +=begin original + Other examples include +=end original + +もう一つの例としては: + $ PERLDB_OPTS="NonStop frame=2" perl -d myprogram which runs script non-interactively, printing info on each entry @@ -1403,9 +1454,15 @@ (If you interrupt it, you would better reset C<LineInfo> to something "interactive"!) +=begin original + Other examples include (using standard shell syntax to show environment variable settings): +=end original + +(環境変数設定を表示する標準シェル構文を使った)もう一つの例としては: + $ ( PERLDB_OPTS="NonStop frame=1 AutoTrace LineInfo=tperl.out" perl -d myprogram ) @@ -1476,14 +1533,28 @@ ok ok +=begin original + Note that this business of escaping a newline is specific to interactive commands typed into the debugger. +=end original + +この、改行をエスケープする問題は、対話的にデバッガに入力されたコマンドに +特有であることに注意してください。 + =item Stack backtrace +=begin original + Here's an example of what a stack backtrace via C<T> command might look like: +=end original + +これは、C<T> コマンドによって表示されるスタックバックトレースの +例です: + $ = main::infested called from file `Ambulation.pm' line 10 @ = Ambulation::legs(1, 2, 3, 4) called from file `camel_flea' line 7 $ = main::pests('bactrian', 4) called from file `camel_flea' line 4 @@ -1501,14 +1572,27 @@ frame shows that C<main::pests> was called in scalar context, also from I<camel_flea>, but from line 4. +=begin original + If you execute the C<T> command from inside an active C<use> statement, the backtrace will contain both a C<require> frame and an C<eval>) frame. +=end original + +有効な C<use> 文の中から C<T> コマンドを実行すると、バックとレースには +C<require> フレームと C<eval> フレームの両方が含まれます。 + =item Line Listing Format +=begin original + This shows the sorts of output the C<l> command can produce: +=end original + +これは C<l> コマンドの出力を示しています: + DB<<13>> l 101: @i{@i} = (); 102:b @isa{@i,$pack} = () @@ -1521,10 +1605,19 @@ 109:a if ($extra-- > 0) { 110: %isa = ($pack,1); +=begin original + Breakable lines are marked with C<:>. Lines with breakpoints are marked by C<b> and those with actions by C<a>. The line that's about to be executed is marked by C<< ==> >>. +=end original + +ブレーク可能な行には C<:> が付いています。 +ブレークポイントのある行には C<b> が、アクションがある行には +C<a> があります。 +今から実行しようとしている行には C<< ==> >> が付いています。 + Please be aware that code in debugger listings may not look the same as your original source code. Line directives and external source filters can alter the code before Perl sees it, causing code to move @@ -1532,10 +1625,18 @@ =item Frame listing +=begin original + When the C<frame> option is set, the debugger would print entered (and optionally exited) subroutines in different styles. See L<perldebguts> for incredibly long examples of these. +=end original + +C<frame> オプションが設定されると、デバッガはサブルーチンに入ったとき +(および出たときもオプションで)違ったスタイルで表示します。 +これらの非常に長い例については L<perldebguts> を参照してください。 + =back =head2 Debugging compile-time statements @@ -1700,20 +1801,33 @@ These do not support normal B<vi> command-line editing, however. (TBT) +=begin original + A rudimentary command-line completion is also available. Unfortunately, the names of lexical variables are not available for completion. -(TBT) + +=end original + +基本的なコマンドライン補完も利用可能です。 +残念ながら、レキシカル変数名は補完できません。 =head2 Editor Support for Debugging (デバッグのためのエディタ対応) +=begin original + If you have the FSF's version of B<emacs> installed on your system, it can interact with the Perl debugger to provide an integrated software development environment reminiscent of its interactions with C debuggers. -(TBT) + +=end original + +FSF 版の B<emacs> がシステムにインストールされている場合は、 +C デバッガとの連携を連想させるような、Perl デバッガとの統合 +ソフトウェア開発環境を提供します。 Perl comes with a start file for making B<emacs> act like a syntax-directed editor that understands (some of) Perl's syntax. @@ -1737,21 +1851,40 @@ (Perl プロファイラ) +=begin original + If you wish to supply an alternative debugger for Perl to run, just invoke your script with a colon and a package argument given to the B<-d> flag. The most popular alternative debuggers for Perl is the Perl profiler. Devel::DProf is now included with the standard Perl distribution. To profile your Perl program in the file F<mycode.pl>, just type: -(TBT) + +=end original + +Perl の実行に代替デバッガを使いたい場合は、単に B<-d> オプションに +コロンとパッケージからなる引数を付けてスクリプトを起動してください。 +もっとも有名な Perl 用代替デバッガは Perl プロファイラです。 +Devel::DProf は Perl 標準配布に含まれています。 +ファイル F<mycode.pl> にある Perl プログラムをプロファイリングしたい +場合、以下のようにします: $ perl -d:DProf mycode.pl +=begin original + When the script terminates the profiler will dump the profile information to a file called F<tmon.out>. A tool like B<dprofpp>, also supplied with the standard Perl distribution, can be used to interpret the information in that profile. +=end original + +スクリプトが終了すると、プロファイラはプロファイル情報を +F<tmon.out> というファイルにダンプします。 +Perl 標準配布に含まれている B<dprofpp> のようなツールが、この +プロファイルの情報を解釈するのに使えます。 + =head1 Debugging regular expressions (正規表現のデバッグ) @@ -1774,7 +1907,8 @@ 一般的に正規表現マッチがどのように行われるかだけでなく、 Perl の正規表現が内部的にどのようにオートマトンにコンパイルされるかを 知らなければなりません。 -これらの事柄は詳細は L<perldebguts/"Debugging regular expressions"> にあります。 +これらの事柄は詳細は +L<perldebguts/"Debugging regular expressions"> にあります。 =head1 Debugging memory usage @@ -1792,7 +1926,8 @@ Perl には自身のメモリ使用状況を報告するための内部機能があります。 しかしこれはかなり上級の概念で、メモリ割り当てがどのように行われるかに ついての理解が必要となります。 -詳細については L<perldebguts/"Debugging Perl memory usage"> を参照して下さい。 +詳細については +L<perldebguts/"Debugging Perl memory usage"> を参照して下さい。 =head1 SEE ALSO Index: docs/perl/5.6.1/perldiag.pod diff -u docs/perl/5.6.1/perldiag.pod:1.7 docs/perl/5.6.1/perldiag.pod:1.8 --- docs/perl/5.6.1/perldiag.pod:1.7 Thu Sep 6 04:40:47 2007 +++ docs/perl/5.6.1/perldiag.pod Fri Sep 7 00:45:29 2007 @@ -4225,8 +4225,8 @@ =end original -Perl thought it was reading UTF-16 encoded character data but while -doing it Perl met a malformed Unicode surrogate. +Perl は UTF-16 エンコード文字データを読み込んでいると考えましたが、 +その間に Perl が不正な Unicode サロゲートに遭遇しました。 =item %s matches null string many times @@ -4441,8 +4441,8 @@ =end original -Yet another way is to assign to a C<foreach> loop I<VAR> when I<VAR> -is aliased to a constant in the look I<LIST>: +もう一つの可能性は、C<foreach> ループにおいて、I<VAR> が I<LIST> の中の +定数のエイリアスであるときに、I<VAR> に代入した時です: $x = 1; foreach my $n ($x, 2) { @@ -4601,10 +4601,10 @@ =end original -(W once) Typographical errors often show up as unique variable names. -If you had a good reason for having a unique name, then just mention it -again somehow to suppress the message. The C<our> declaration is -provided for this purpose. +(W once) しばしばタイプミスによってユニークな変数名として表示されます。 +ユニークな名前をを使う理由があるのなら、もう一度どこかで参照することで +このメッセージを抑制できます。 +C<our> 宣言がこの目的のために提供されています。 =item Negative length @@ -4734,9 +4734,10 @@ =end original -(F) An error peculiar to VMS. Perl handles its own command line -redirection, and found a '|' at the end of the command line, so it -doesn't know where you want to pipe the output from this command. +(F) VMSに固有のエラーです。 +Perl は独自にコマンドラインのリダイレクトを扱っていて、 +コマンドラインの最後にに '|' を発見しましたが、 +このコマンドから出力をどこにパイプしたいのかがわかりませんでした。 =item No DB::DB routine defined @@ -4795,9 +4796,10 @@ =end original -(F) An error peculiar to VMS. Perl handles its own command line -redirection, and found a '2>' or a '2>>' on the command line, but can't -find the name of the file to which to write data destined for stderr. +(F) VMSに固有のエラーです。 +Perl は独自にコマンドラインのリダイレクトを扱っていて、 +コマンドラインに '2>' や '2>>' を発見しましたが、 +標準エラーとしてデータを書き込むファイル名が見つかりませんでした。 =item No input file after < on command line @@ -4811,7 +4813,7 @@ (F) VMS 特有のエラーです。 Perl は独自にコマンドラインのリダイレクトを扱っていて、コマンドラインに -'<' を発見しましたが、stdin として読み込むためのファイル名が +'<' を発見しましたが、標準入力として読み込むためのファイル名が 見つかりませんでした。 =item No #! line @@ -5176,9 +5178,8 @@ =end original -(A) You've accidentally run your script through the Bourne shell instead -of Perl. Check the #! line, or manually feed your script into Perl -yourself. +(A) スクリプトを Perl ではなく Bourne shell で実行しようとしています。 +#! ラインをチェックするか、手動でスクリプトを Perl に渡してください。 =item no UTC offset information; assuming local time is UTC @@ -7155,9 +7156,9 @@ =end original -(W closed) You tried to set a socket option on a closed socket. Did you -forget to check the return value of your socket() call? See -L<perlfunc/setsockopt>. +(W closed) 閉じているソケットにソケットオプションを設定しようとしました。 +socket() 呼び出しの返り値のチェックを忘れていませんか? +L<perlfunc/setsockopt> を参照してください。 =item Setuid/gid script is writable by world