.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "IO::Async::Debug 3pm" .TH IO::Async::Debug 3pm 2024-02-04 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME "IO::Async::Debug" \- debugging control and support for IO::Async .SH DESCRIPTION .IX Header "DESCRIPTION" The following methods and behaviours are still experimental and may change or even be removed in future. .PP Debugging support is enabled by an environment variable called \&\f(CW\*(C`IO_ASYNC_DEBUG\*(C'\fR having a true value. .PP When debugging is enabled, the \f(CW\*(C`make_event_cb\*(C'\fR and \f(CW\*(C`invoke_event\*(C'\fR methods on IO::Async::Notifier (and their \f(CW\*(C`maybe_\*(C'\fR variants) are altered such that when the event is fired, a debugging line is printed, using the \f(CW\*(C`debug_printf\*(C'\fR method. This identifes the name of the event. .PP By default, the line is only printed if the caller of one of these methods is the same package as the object is blessed into, allowing it to print the events of the most-derived class, without the extra verbosity of the lower-level events of its parent class used to create it. All calls regardless of caller can be printed by setting a number greater than 1 as the value of \&\f(CW\*(C`IO_ASYNC_DEBUG\*(C'\fR. .PP By default the debugging log goes to \f(CW\*(C`STDERR\*(C'\fR, but two other environment variables can redirect it. If \f(CW\*(C`IO_ASYNC_DEBUG_FILE\*(C'\fR is set, it names a file which will be opened for writing, and logging written into it. Otherwise, if \&\f(CW\*(C`IO_ASYNC_DEBUG_FD\*(C'\fR is set, it gives a file descriptor number that logging should be written to. If opening the named file or file descriptor fails then the log will be written to \f(CW\*(C`STDERR\*(C'\fR as normal. .PP Extra debugging flags can be set in a comma-separated list in an environment variable called \f(CW\*(C`IO_ASYNC_DEBUG_FLAGS\*(C'\fR. The presence of these flags can cause extra information to be written to the log. Full details on these flags will be documented by the implementing classes. Typically these flags take the form of one or more capital letters indicating the class, followed by one or more lowercase letters enabling some particular feature within that class. .SH AUTHOR .IX Header "AUTHOR" Paul Evans