NAME
Net::SIP::Debug - debugging of Net::SIP
SYNOPSIS
use Net::SIP::Debug 1;
use Net::SIP::Debug qw( Net::SIP*=0 Registrar=1 );
Net::SIP::Debug->level(1);
perl -MNet::SIP::Debug=1 app.pl
DESCRIPTION
Provides debugging support for Net::SIP. Debugging can be enabled/disabled globally or per package and optional per subpackage.
CLASS METHODS
- import ( @ARGS )
-
Extracts everything from arguments given to
use
which might be usable by level and forwards rest to Exporter. - level ( @ARGS )
-
Enables/disables debugging depending on @ARGS. @ARGS might contain the following specifications:
- NUMBER
-
NUMBER will be interpreted as the debugging level. Right now only one level is implemented, so everything !=0 will enable debugging.
- PACKAGE
-
Enables debugging for package PACKAGE. PACKAGE might be a fully qualified package (e.g.
Net::SIP::Registrar
) or theNet
orNet::SIP
might be ommited (Registrar
). If a*
is added the debugging will also be enabled for subpackages, e.g.Endpoint*
will enable debugging for Net::SIP::Endpoint and Net::SIP::Endpoint::Context too. - PACKAGE=NUMBER
-
Similar to the previous item, but this sets debugging level to NUMBER for the specified packages and thus can also be used to selectivly disable debugging for some packages.
If @ARGS is empty it will return the debugging level for the package which called this method (the first package in the caller stack which is not Net::SIP::Debug itself).
- set_prefix ( PREFIX )
-
Sets prefix used for debug messages to PREFIX. Default prefix is 'DEBUG:' but for instance for forking applications it might be useful to change this to "DEBUG($$):" or similar.
SUBROUTINES
- DEBUG|debug ( MESSAGE | FMT,@ARG )
-
If debugging is enabled it will print to STDERR debugging info. If multiple arguments are given to the function they will be fed into sprintf to create a single message.
The MESSAGE (or the result from
sprintf(FMT,@ARG)
) will be prefixed by the callers package, the callers function and the line from which DEBUG was called. In front of the prefix the current time (as float time_t) and the string "DEBUG:" will be added.If the message consists of multiple lines each line will be prefixed by the prefix and all but the first line will also have a TAB added between prefix and message data.
The function is by default exported as DEBUG and can by exported as debug too.
- DEBUG_DUMP ( @DATA )
-
Will call debug with the output from Data::Dumpers Dumper if debugging is enabled. If @DATA has more than one item it will be fed as reference into Dumper, otherwise only the single item will be fed to Dumper.
This function is exported by default.
- stacktrace ( MESSAGE | FMT,@ARG )
-
Uses the arguments in debug, but instead of writing a debug message to STDERR it will be used in Carp::longmess. Returns string with stacktrace.
- LEAK_TRACK ( REF )
-
This is used internally for tracking leaks. It will rebless REF into a new class which behaves like the old one. Calls of LEAK_TRACK and DESTROY on this class will be tracked and shown. If Devel::Peek can be loaded it will Dump information about the REF on each call to LEAK_TRACK.
Exported by default.