GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Devel::Events(3) User Contributed Perl Documentation Devel::Events(3)

Devel::Events - Extensible instrumentation framework

version 0.09

        use Devel::Events::Generator::Foo;
        use Devel::Events::Handler::Bar;
        use Devel::Events::Filter::Blort;

        my $h = Devel::Events::Generator->new(
                handler => Devel::Event::Filter->new(
                        handler => Devel::Events::Handler::Bar->new(),
                ),
        );

Devel::Events is an event generation, filtering and analaysis framework for instrumenting and auditing perl code.

The design's purpose is to decouple the mechanics of code instrumentation from the analysis, making it easier to write debugging/profiling tools.

Devel::Events::Generator object fire events, which can be mangled by Devel::Event::Filter objects. Eventually any number of Devel::Event::Handler objects can receive a given event, and perform analysis based on it.

For example Devel::Event::Handler::ObjectTracker can be used to detect leaks.

There are two main types of components - generators and handlers.

Filters are special types of handlers that always delegate to another handler.

The multiplex handler may be used to delegate to any number of handlers, and can be the handler for several generators.

Using these basic components complex chains of handlers can be built to properly analyze the events you are interested in.

Devel::Events::Generator::Objects
Generate "object_bless" and "object_destroy" events by overriding "CORE::GLOBAL::bless" and tracking every object using Variable::Magic.
Devel::Events::Generator::SubTrace
Uses the perl debugger hook to generate "enter_sub" and "leave_sub" events.
Devel::Events::Generator::LineTrace
Fires an "executing_line" event for every line using the perl debugger hook.
Devel::Events::Generator::Require
Fires events for "require" and c<use> calls.

Devel::Events::Handler::Multiplex
Repeat events to multiple handlers.
Devel::Events::Handler::Callback
Make a handler object out of a callback.
Devel::Events::Handler::Log::Memory
Log all events to an array.

Provides filtering and slicing methods to ease analysis.

Devel::Events::Handler::ObjectTracker
Handles "object_bless" and "object_destroy" events (as generated by Devel::Events::Generator::Objects) to track the lifetime of objects. When objects lifetimes extend beyond the scope they're supposed to be destroyed in leaks can be detected.}

Devel::Events::Filter::Stamp
Add various stamp data (time, process ID, thread ID if threads are loaded) to events.
Devel::Events::Filter::Stringify
Stringify (by default using "StrVal" in overload, to avoid side effects) all event data to avoid leaking.
Devel::Events::Filter::Size
Add size reports to events using Devel::Size
Devel::Events::Filter::RemoveFields
Remove certain fields from events.
Devel::Events::Filter::Warn
Runs "warn "@event"" before delegating to the sub handler. Useful for debugging handler chains.

All events are passed as lists.

The default components will generate lists containing a single string which is the event name, and then a list of key/value pairs.

Bugs may be submitted through the RT bug tracker <https://rt.cpan.org/Public/Dist/Display.html?Name=Devel-Events> (or bug-Devel-Events@rt.cpan.org <mailto:bug-Devel-Events@rt.cpan.org>).

XXXX XXX'XX (Yuval Kogman) <nothingmuch@woobling.org>

Karen Etheridge <ether@cpan.org>

This software is copyright (c) 2007 by XXXX XXX'XX (Yuval Kogman).

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

2018-03-27 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.