You are viewing the version of this documentation from Perl 5.26.2. View the latest version



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


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.


use Test2::Util::Trace;

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


$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.

$str = $trace->debug

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


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


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

$frame = $trace->frame()

Get the call frame arrayref.

($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.

$hashref = $t->TO_JSON

This returns a hashref suitable for passing to the Test2::Util::Trace->from_json constructor. It is intended for use with the JSON family of modules, which will look for a TO_JSON method when convert_blessed is true.

$t = Test2::Util::Trace->from_json(%$hashref)

Given the hash of data returned by $t->TO_JSON, this method returns a new trace object of the appropriate subclass.


The source code repository for Test2 can be found at


Chad Granum <>


Chad Granum <>


Copyright 2016 Chad Granum <>.

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