=encoding euc-jp =head1 名前 Devel::Leak - 回収されないperlオブジェクトを検索するためのユーティリティ =head1 概要 use Devel::Leak; ... 設定するコード my $count = Devel::Leak::NoteSV($handle); ... リークをおこすかも知れないコード Devel::Leak::CheckSV($handle); =head1 説明 Devel::Leakは2つの関数 C と Cを持っています。 Cはperlの確保されたSV(スカラー値)の内部テーブル - (実際、これには 配列やハッシュも含まれます)を一通り見て、テーブルにそのアドレスを記録します。 それはこれらの"もの"の数を返し、その引数にテーブルへのポインタを格納します (これはmalloc()を使ってヒープに取得されます)。 CはCテーブルへのポインタを保持した引数を渡されます。 それはperl内部を再び見て、Cが呼び出されたときに存在しなかった すべての"もの"に対してsv_dump()を呼び出します。それは今、確保されている"もの"の 数を返します。 =head1 注意 何でも表示するためのsv_dump()のために-DDEBUGGINGでperlがビルドされている 必要があります。しかしどのperlでも数は間違えありません。 新しい"もの"が作られてI<いた>のであれば、Cはsv_dump()コードによって 確保された、追加の"もの"を(含めて)報告するでしょう。 =head1 履歴 この小さなユーティリティ・モジュールは、perl5.005での変数の名前変更が、 Tkはperl内部について詳しく知る筋合いではないということを明確にするまで、 Tkの一部でした。 =head1 作者 Nick Ing-Simmons