Perlのデバッガ(コマンドのまとめ)

by Hippo2000(1999/1/14)

Perl5からは標準でデバッガがついています。(-dオプション)
そこで、その「コマンドのまとめ」なのです。

この文書は、ActivePerlのオンラインマニュアルのPerldebug(C:\Perl\html\lib\Pod\perldebug.html)をベースにしています。
でもメモリ使用や正規表現のデバッグについては、いまのところ、まとめる気はありません。(興味がないのね)

まだ工事中です。(完成予定はいつだろう...)


目次

1. 起動方法

2. コマンド
2.1 コマンド一覧
2.2 オプション一覧

3. 使うときのポイント

参考資料


1. デバッガモードで起動、終了

Perlをデバッガモードで起動するためには-dオプションをつけて、実行します。

すると実行する最初スクリプトの行から数行が表示されます。

デバッガから抜ける場合には、qとタイプします。

実行結果の例

C:\User>perl -d gg.pl

Loading DB routines from perl5db.pl version 1.0401
Emacs support available.

Enter h or `h h' for help.

main::(gg.pl:2):            @data = (
main::(gg.pl:3):                ["OP","BS","CT","CTC","OSK","KNA"],
main::(gg.pl:4):                [ 10,    20,    15,    16,    13,  15],
  DB<1> w
1:      use GIFgraph::pie;
2==>        @data = (
3               ["OP","BS","CT","CTC","OSK","KNA"],
4               [ 10,    20,    15,    16,    13,  15],
5       #       [10,    20,    15,    16,    13,  15]
6       #        [ sort { $a <=> $b } (1, 2, 5, 6, 3, 1.5, 1, 3, 4) ]
7           );
8
  DB<1> q

 

2. コマンド

2.1 コマンド一覧

Perlデバッガには以下のようなコマンドがあります。
一部未確認のコマンドがあります。

コマンド オプション 説    明
h h [コマンド] ヘルプメッセージの表示。
コマンドを指定するとそのコマンドについてのヘルプメッセージを表示する。
p p 式 指定された式の値を表示する。(現在のパッケージでのprint 式 と同じ)
x x 式 指定された式の内容をリストコンテントで解釈し、その内容を表示します。
V [パッケージ [変数...]] パッケージ内の変数の値を表示します。
パッケージの指定がなければmainパッケージがデフォルトになります。
X X [変数...] 現在のパッケージの変数の値を表示します。
T T スタックトレースを表示します。
s s [式] 1ステップ進む。
n n [式] 次に進む。
改行   直前のsまたはnコマンドを繰り返す。
c c [行番号|サブルーチン名] 指定された行またはサブルーチンまで処理を続ける。
l l 次の1画面分、プログラムを表示する。
l l 開始行 + 行数 開始行から行数分、プログラムを表示する。
l l 開始行 - 終了行 開始行から終了行まで、プログラムを表示する。
l l 行番号 指定された行番号のプログラムを表示する。
  l サブルーチン 指定されたサブルーチンを表示する。
- - 1画面分、前のプログラムを表示する。
w w [行数] 現在行の周りの指定された行を表示する。
.(ピリオド) . 最後に実行した行の位置を返し、その行を表示する。
f f ファイル名 表示するファイルを変更する。
/パターン/   下に向かって指定されたパターンを検索する。(最後の/は省略可)
?パターン?   上に向かって指定されたパターンを検索する。(最後の?は省略可)
L   すべてのブレークポイント、アクションを表示する。
S S [[!]パターン] パターンにマッチする(!がついたらしない)サブルーチン名を一覧表示する。
t t トレースモードのオン/オフ。(AutoTraceオプションを参照)
t t 式 指定された式の実行をトレースする。
b b [行番号] [条件] ブレークポイントを設定する。
行が省略された場合には、これから実行される直前の行を
条件が設定された場合、ブレークポイントの行を実行する直前に
条件が真の場合だけブレークされる。
b b サブルーチン名 [条件] 指定されたサブルーチンの最初の行にブレークポイントを設定する。
  b postpone サブルーチン名 [条件]  指定されたサブルーチンがコンパイルされた後に、最初の行へブレーク
ポイントを設定する。
  b load ファイル名 指定されたファイルの最初に実行される行にブレークポイントを設定する。
ファイル名は%INCを元にしても完全にわかるような名前で指定すること。
  b compile サブルーチン名 指定されたサブルーチンがコンパイルされた後、最初に実行される行へ
ブレークポイントを設定する。
d d [行番号] 指定された行番号のブレークポイントを削除する。
行番号を指定しない場合には、その時点で実行される行のブレーク
ポイントが削除される。
D D すべてのブレークポイントを削除する。
a a [行番号] コマンド その行が実行される前におこなう処理(アクション)を設定する。
A   すべてのアクションを削除する。
W W [式] グローバル・ウォッチに追加する。
W W すべてのグローバル・ウォッチを削除する。
O O [オプション[=値]] 
  [オプション "値"] 
  [オプション?]...
オプションの値を設定または表示する。
< < [コマンド] デバッガプロンプトを表示する直前にに実行されるPerlコマンドを設定する。
コマンドを指定しなければ、設定したコマンドが削除される。
<< << コマンド デバッガプロンプトを表示する直前に実行されるPerlコマンドを追加する。
> > [コマンド] デバッガプロンプトを表示した直後に実行されるPerlコマンドを設定する。
コマンドを指定しなければ、設定したコマンドが削除される。
>> >> コマンド デバッガプロンプトを表示した直後に実行されるPerlコマンドを追加する。
{ { [コマンド] デバッガプロンプトを表示する直前にに実行されるデバッガコマンドを設定する。
コマンドを指定しなければ、設定したコマンドが削除される。
{{ {{ コマンド デバッガプロンプトを表示する直前に実行されるデバッガコマンドを追加する。
! ! 番号 指定された前のコマンドを再実行する。(デフォルトは直前)
  ! -番号 指定された分だけ前のコマンドを再実行する。
  ! パターン 指定されたパターンにマッチする最後のコマンドを実行する。
(オプションのrecallCommandを参照)
  !! コマンド 指定されたコマンドをサブプロセスとして実行する。
H -番号 指定された数だけ以前のコマンドを表示する。
番号が省略されるとすべてが表示される。
qまたは^D qまたは^D デバッガを抜ける。
r r 現在のサブルーチンを抜ける。
R R デバッガを再実行する。
v v ロードされたモジュールのバージョンを表示する。
| | デバッガコマンド デバッガコマンドをページャーにパイプしながら実行する。
|| || デバッガコマンド デバッガコマンドをページャーにパイプしながら実行する。
DB::OUTがセレクトされる。(?)
= = [エイリアス 設定値] エイリアスを作成する。
指定がなければ、現在のエイリアスをすべて表示する。
Perlコマンド   Perl実行文として評価する。
セミコロンがなくても、追加されます。
m m 式 式を評価し、その結果に適用可能なメソッドを一覧表示します。
  m パッケージ そのパッケージに使用可能なメソッドを一覧表示します。

2.2 オプション一覧

オプション 説 明
recallCommand, ShellBang コマンド呼び出し、またはシェル起動に使われる文字。
デフォルトは!。
pager (|で始まるコマンドの)出力のパイプを受け取るページャープログラム。
デフォルトは$ENV{PAGER}が使用される。
tkRunning プロンプトを表示するときにReadLineパッケージが備えているTkRuinningが実行される。
signalLelve, warnLevel, dieLevel 冗長レベル(シグナル、警告、異常終了)。
デフォルトは通常の実行時と同じ。
AutoTrace オートトレースモード
LineInfo 表示される行情報。
inhibit_exit 0が設定されると、スクリプトの終了が回避される。
PrintRet rコマンドの後に表示される戻り値に影響を与える。
ornaments コマンド行の表示形式に影響を与える。
frame サブルーチンに入るまたは出る時点のメッセージの表示に影響を与える。
第2ビットがONの場合、入ったことだけが表示される。
第3ビットがONの場合、引数の内容とを呼び出し側情報を表示する。
第4ビットがONの場合、引数の表示にオーバーロードされたstringifyや
tieされたFETCHが使われる。
第5ビットがONの場合、サブルーチンの戻り値も表示される。
maxTraceLen frameオプションの第4ビットがONの場合に表示される引数の数。
同様にV、X、xコマンドにも影響を与える。
arrayDepth, hashDepth 配列またはハッシュの表示する個数。
compactDump, veryCompact 配列またはハッシュのダンプの形式を変更する。
globPrint グロブの内容を表示するか、いなか。
DumpDBFiles デバッグされているファイルが保持している配列をダンプする。
DumpPackages パッケージのシンボルテーブルをダンプする。
DumpReused 再使用されているアドレスの内容をダンプする。
quote, HigBit, undefPrint 文字列ダンプの形式を変更する。
UsageOnly 使用しているメモリをパッケージごとに表示する。
TTY デバッグの入出力に使用するTTY
noTTY 設定されるとNonStopモードで実行される。
ReadLine FALSEならば、デバッガの行入力が使えなくなる。
(行を読みこむアプリケーションのデバッグができる)
NonStop 設定されると対話モードでなくなる。

3. 使うときのポイント

って話がかけたらいいかな。(なんてね)


参考資料

この文書は、ActivePerlのオンラインマニュアルのPerldebug(C:\Perl\html\lib\Pod\perldebug.html)をベースにしています。
ついでにperl5db.plも。

この文書をつくるのにあたり、以下のサイトのお世話になりました。


ホーム Perlの小技

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。