Devel::Events::Handler::ObjectTracker - A L that tracks leaks


Devel-Events-Objects documentation  | view source Contained in the Devel-Events-Objects distribution.

Index


NAME

Top

Devel::Events::Handler::ObjectTracker - A Devel::Events that tracks leaks

SYNOPSIS

Top

	use Devel::Events::Handler::ObjectTracker;
	use Devel::Events::Generator::Objects;

	my $tracker = Devel::Events::Handler::ObjectTracker->new();

	my $gen = Devel::Events::Generator::Objects->new(
		handler => $tracker,
	);

	$gen->enable(); # start generating events

	$code->();

	$gen->disable();

	use Data::Dumper;
	warn Dumper($tracker->live_objects);

DESCRIPTION

Top

This object will keep track of every object created and every object destroyed based on the object_bless and object_destroy events. Reblessing is accounted for.

This handler doesn't perform any magical stuff, Devel::Events::Generator::Objects is responsible for raising the proper events.

ATTRIBUTES

Top

live_objects

A Tie::RefHash::Weak hash that keeps an index of every live object and the object_bless event that created it.

class_counters

Keeps a count of the live instances per class, much like Devel::Leak::Object.

object_to_class

USed to maintain the class_counters hash.

METHODS

Top

new_event @event

Delegates to handle_object_bless or handle_object_destroy

handle_object_bless @event

Adds an entry in the live_objects table.

event_to_entry @event

Munges event data into an entry for the live_objects table.

handle_object_destroy

Decrements the class_counters counter.


Devel-Events-Objects documentation  | view source Contained in the Devel-Events-Objects distribution.