Re: Possibility to include called object in exception backtrace

From: Date: Sun, 14 Dec 2025 07:57:51 +0000
Subject: Re: Possibility to include called object in exception backtrace
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-129607@lists.php.net to get a copy of this message
Hi all, this is a reminder If there are still any objections about this PR please speak up. Else, I would kindly ask for merge without RFC. Thanks Marc On 29.11.25 08:14, Marc B. wrote:
Hi all, I have opened a simple PR to add the possibility to include called object in exception backtrace. https://github.com/php/php-src/pull/20599 This needs a discussion here to see if there are objections. About the patch: The patch adds the ability to populate the called |object| into exception backtraces. Previously, only |debug_backtrace()| could include the called object in its frames, but |Exception::getTrace()| could not. This change aligns |Exception::getTrace()| with |debug_backtrace()| by introducing a new INI directive: |zend.exception_provide_object (boolean)| This directive is analogous to the existing |zend.exception_ignore_args| option, but controls whether the |object| field is included in exception backtraces. *Behavior:* * When zend.exception_provide_object = 0 (default), behavior is
    unchanged: exception traces do not contain the object.
* When zend.exception_provide_object = 1, exception backtrace
    includes the called |object| (where applicable).
*Defaults:* * No configuration value provided: |zend.exception_provide_object = Off| * |php.ini-production|: |zend.exception_provide_object = Off| * |php.ini-development|: |zend.exception_provide_object = On| *Use cases and considerations:* This feature is primarily intended for development and debugging. Provides richer diagnostic information by exposing the actual object on which methods were invoked. Can help track down state-dependent bugs that depend on specific object properties. However, it is not recommended for production environments, because: * It may expose sensitive data held on objects in logs or error output. * It can increase memory usage and the size of collected traces. For production systems, |zend.exception_provide_object| should remain disabled. Additionally, I added a note to zend.exception_ignore_args and zend.exception_provide_object as this increases the refcount of the objects, and therefore may delay object destruction. Marc


« previous php.internals (#129607) next »