innmind/stack-trace

Tool to inspect exception stack trace

4.1.0 2023-09-17 15:22 UTC

This package is auto-updated.

Last update: 2024-03-17 16:18:08 UTC


README

Build Status codecov Type Coverage

Tool to inspect an Exception stack trace

Installation

composer require innmind/stack-trace

Usage

use Innmind\StackTrace\{
    StackTrace,
    Render,
};
use Innmind\OperatingSystem\Factory;
use Innmind\Server\Control\Server\Command;

$trace = StackTrace::of(new AnyClassImplementingPhpThrowableInterface);

// every call frames that lead to the exception to be thrown
// (deepest call frame first)
$callFrames = $trace->throwable()->callFrames();

// this will render the stack trace via graphviz
Factory::build()
    ->control()
    ->processes()
    ->execute(
        Command::foreground('dot')
            ->withShortOption('Tsvg')
            ->withShortOption('o', 'graph.svg')
            ->withInput(
                Render::of()($trace)
            ),
    )
    ->wait();

Note: the svg rendered contains links to the files where call frames and exceptions occured, you can change the link by providing an instance of Link to the Render object.

Example of a rendered stack trace: