Closed
Description
Version: all
Bug Description
In Tracy, there is a way to use recursive exceptions to drop the entire capture process via repeatedly writing previous
.
Steps To Reproduce
How to kill your application.
Use this code:
$a = new class extends \RuntimeException {
public function setPrevious(\Throwable $e): void
{
$ref = new \ReflectionClass($this);
$parent = $ref->getParentClass()->getParentClass();
$previous = $parent->getProperty('previous');
$previous->setAccessible(true);
$previous->setValue($this, $e);
}
};
$a->setPrevious($a);
// this line will kill your BlueScreen:
throw $a;
Dumped value is:
Note the recursion on the previous
property, where Tracy recognizes it correctly. This logic must also be in the callstack statement.
Expected Behavior
Stop callstack dumping in case of recursion, or at least limit the depth.
Thanks.
Metadata
Metadata
Assignees
Labels
No labels