Devel-Leak-0.02 > Devel::Leak

名前

Devel::Leak - 回収されないperlオブジェクトを検索するためのユーティリティ

概要

  use Devel::Leak;
  ... 設定するコード

  my $count = Devel::Leak::NoteSV($handle);

  ... リークをおこすかも知れないコード

  Devel::Leak::CheckSV($handle); 

説明

Devel::Leakは2つの関数 NoteSVCheckSVを持っています。

NoteSVはperlの確保されたSV(スカラー値)の内部テーブル - (実際、これには 配列やハッシュも含まれます)を一通り見て、テーブルにそのアドレスを記録します。 それはこれらの"もの"の数を返し、その引数にテーブルへのポインタを格納します (これはmalloc()を使ってヒープに取得されます)。

CheckSVNoteSVテーブルへのポインタを保持した引数を渡されます。 それはperl内部を再び見て、NoteSVが呼び出されたときに存在しなかった すべての"もの"に対してsv_dump()を呼び出します。それは今、確保されている"もの"の 数を返します。

注意

何でも表示するためのsv_dump()のために-DDEBUGGINGでperlがビルドされている 必要があります。しかしどのperlでも数は間違えありません。

新しい"もの"が作られていたのであれば、CheckSVはsv_dump()コードによって 確保された、追加の"もの"を(含めて)報告するでしょう。

履歴

この小さなユーティリティ・モジュールは、perl5.005での変数の名前変更が、 Tkはperl内部について詳しく知る筋合いではないということを明確にするまで、 Tkの一部でした。

作者

Nick Ing-Simmons <[email protected]>