The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Test2::EventFacet::Trace - Debug information for events

DESCRIPTION

The Test2::API::Context object, as well as all Test2::Event types need to have access to information about where they were created. This object represents that information.

SYNOPSIS

    use Test2::EventFacet::Trace;

    my $trace = Test2::EventFacet::Trace->new(
        frame => [$package, $file, $line, $subname],
    );

FACET FIELDS

$string = $trace->{details}
$string = $trace->details()

Used as a custom trace message that will be used INSTEAD of at <FILE> line <LINE> when calling $trace->debug.

$frame = $trace->{frame}
$frame = $trace->frame()

Get the call frame arrayref.

$int = $trace->{pid}
$int = $trace->pid()

The process ID in which the event was generated.

$int = $trace->{tid}
$int = $trace->tid()

The thread ID in which the event was generated.

$id = $trace->{cid}
$id = $trace->cid()

The ID of the context that was used to create the event.

$hid = $trace->{hid}
$hid = $trace->hid()

The ID of the hub that was current when the event was created.

$int = $trace->{nested}
$int = $trace->nested()

How deeply nested the event is.

$bool = $trace->{buffered}
$bool = $trace->buffered()

True if the event was buffered and not sent to the formatter independent of a parent (This should never be set when nested is 0 or undef).

METHODS

Note: All facet frames are also methods.

$trace->set_detail($msg)
$msg = $trace->detail

Used to get/set a custom trace message that will be used INSTEAD of at <FILE> line <LINE> when calling $trace->debug.

detail() is an alias to the details facet field for backwards compatibility.

$str = $trace->debug

Typically returns the string at <FILE> line <LINE>. If detail is set then its value will be returned instead.

$trace->alert($MESSAGE)

This issues a warning at the frame (filename and line number where errors should be reported).

$trace->throw($MESSAGE)

This throws an exception at the frame (filename and line number where errors should be reported).

($package, $file, $line, $subname) = $trace->call()

Get the caller details for the debug-info. This is where errors should be reported.

$pkg = $trace->package

Get the debug-info package.

$file = $trace->file

Get the debug-info filename.

$line = $trace->line

Get the debug-info line number.

$subname = $trace->subname

Get the debug-info subroutine name.

$sig = trace->signature

Get a signature string that identifies this trace. This is used to check if multiple events are related. The Trace includes pid, tid, file, line number, and the cid which is 'C\d+' for traces created by a context, or 'T\d+' for traces created by new().

SOURCE

The source code repository for Test2 can be found at http://github.com/Test-More/test-more/.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT

Copyright 2016 Chad Granum <exodist@cpan.org>.

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

See http://dev.perl.org/licenses/