Devel-LeakGuard-Object
view release on metacpan or search on metacpan
lib/Devel/LeakGuard/Object.pm view on Meta::CPAN
package Devel::LeakGuard::Object;
use 5.008;
use strict;
use warnings;
use Carp;
use Data::Dumper;
use Scalar::Util qw( blessed refaddr weaken );
use Devel::LeakGuard::Object::State;
use base qw( Exporter );
our @EXPORT_OK = qw( track leakstate status leakguard );
our %OPTIONS = (
at_end => 0,
stderr => 0
);
our ( %DESTROY_NEXT, %DESTROY_ORIGINAL, %DESTROY_STUBBED, %OBJECT_COUNT,
%TRACKED );
=encoding utf8
=head1 NAME
Devel::LeakGuard::Object - Scoped checks for object leaks
=head1 VERSION
This document describes Devel::LeakGuard::Object version 0.08
=cut
our $VERSION = '0.08';
=head1 SYNOPSIS
# Track a single object
use Devel::LeakGuard::Object;
my $obj = Foo::Bar->new;
Devel::LeakGuard::Object::track($obj);
# Track every object
use Devel::LeakGuard::Object qw( GLOBAL_bless );
# Track every object, summary at exit
use Devel::LeakGuard::Object qw( GLOBAL_bless :at_end );
# Track a block of code, warning on leaks
leakguard {
# your potentially leaky code here
};
# Track a block of code, die on leaks
leakguard {
# your potentially leaky code here
}
on_leak => 'die';
=head1 DESCRIPTION
This module provides tracking of objects, for the purpose of
detecting memory leaks due to circular references or innappropriate
caching schemes.
It is derived from, and backwards compatible with Adam Kennedy's
( run in 2.264 seconds using v1.01-cache-2.11-cpan-99c4e6809bf )