Possibility to include called object in exception backtrace

From: Date: Sat, 29 Nov 2025 07:14:05 +0000
Subject: Possibility to include called object in exception backtrace
Groups: php.internals 
Request: Send a blank email to internals+get-129473@lists.php.net to get a copy of this message
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 (#129473) next »