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

NAME

Devel::hdb::App::Stack - Get information about the program stack

DESCRIPTION

Routes

GET /stack
GET /stack?exclude_sub_params=1
HEAD /stack

Get a list of the current program stack. Does not include any stack frames within the debugger. The currently executing frame is the first element in the list. Returns a JSON-encoded array where each item is a hash with the following keys: package Package/namespace subroutine Fully-qualified subroutine name. Includes the package subname Subroutine name without the package included filename File where the subroutine was defined lineno Line execution is stopped on args Array of arguments to the subroutine wantarray Context this frame was called in serial Unique serial number for this frame

The header X-Stack-Depth will have the number of frames in the stack. The caller may request the HEAD to omit the body/data and just get the headers.

The deepest stack frame is reported as being in the subroutine named 'MAIN'.

Values in the args list are encoded using Data::Transform::ExplicitMetadata

If the param exclude_sub_params is true, then the 'args' value will be undef, useful to avoid serializing/deserializing possibly deep data structures passed as arguments to functions.

GET /stack/<id>
GET /stack/<id>?exclude_sub_params=1
HEAD /stack/<id>

Get only one stack frame. 0 is the most recent frame in the debugged program, 1 is the frame before that. Returns a JSON-encoded hash with the same information as each stack frame returned by GET /stack. In addition, the header X-Stack-Line contains the current frame's line number, and the header X-Stack-Serial contains the current frame's serial. Returns a 404 error if there is no frame as deep as was requested.

SEE ALSO

Devel::hdb, Data::Transform::ExplicitMetadata

AUTHOR

Anthony Brummett <brummett@cpan.org>

COPYRIGHT

Copyright 2014, Anthony Brummett. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.