#42058 [NoF->Opn]: debug_backtrace() messes up with references

From: Date: Mon, 13 Aug 2007 12:18:21 +0000
Subject: #42058 [NoF->Opn]: debug_backtrace() messes up with references
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-116014@lists.php.net to get a copy of this message
ID: 42058 User updated by: mcorne at yahoo dot com Reported By: mcorne at yahoo dot com -Status: No Feedback +Status: Open Bug Type: Scripting Engine problem Operating System: Windows XP PHP Version: 5.2CVS-2007-07-23 New Comment: Just tried with today's snapshot PHP 5.2.4RC1-dev. Bug is still there! Previous Comments: ------------------------------------------------------------------------ [2007-08-12 01:00:00] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2007-08-04 20:57:48] jani@php.net Please try the latest snapshot again, from today. ------------------------------------------------------------------------ [2007-07-23 12:40:46] mcorne at yahoo dot com I used http://snaps.php.net/win32/php5.2-win32-latest.zip as you recommended: PHP Version => 5.2.4-dev. I get the same error. ------------------------------------------------------------------------ [2007-07-21 09:40:59] mcorne at yahoo dot com Description: ------------ error #1: debug_backtrace() does not report the original value of a variable passed by reference even if it is called before the variable is modified. error #2: debug_backtrace() messes up with the content of an array used to store debug_backtrace() results from subsequent calls to the same function. Reproduce code: --------------- <?php function trace() { global $trace; $trace[] = debug_backtrace(); } function foo(&$pos) { trace(); $pos++; } $pos = 0; foo($pos); echo "error #1\n----------\n"; var_export($trace); echo "\n\nerror #2\n----------\n"; foo($pos); var_export($trace); ?> Expected result: ---------------- error #1 ---------- array ( 0 => array ( 0 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 11, 'function' => 'trace', 'args' => array ( ), ), 1 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 16, 'function' => 'foo', 'args' => array ( 0 => 0, ), ), ), ) error #2 ---------- array ( 0 => array ( 0 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 11, 'function' => 'trace', 'args' => array ( ), ), 1 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 16, 'function' => 'foo', 'args' => array ( 0 => 0, ), ), ), 1 => array ( 0 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 11, 'function' => 'trace', 'args' => array ( ), ), 1 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 20, 'function' => 'foo', 'args' => array ( 0 => 1, ), ), ), ) Actual result: -------------- error #1 ---------- array ( 0 => array ( 0 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 11, 'function' => 'trace', 'args' => array ( ), ), 1 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 16, 'function' => 'foo', 'args' => array ( 0 => 1, ), ), ), ) error #2 ---------- array ( 0 => array ( 0 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 11, 'function' => 'trace', 'args' => array ( ), ), 1 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 16, 'function' => 'foo', 'args' => array ( 0 => 2, ), ), ), 1 => array ( 0 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 11, 'function' => 'trace', 'args' => array ( ), ), 1 => array ( 'file' => 'D:\\Data\\dev\\i18n-unicodnorm\\trunk\\I18N\\tests\\bug.php', 'line' => 20, 'function' => 'foo', 'args' => array ( 0 => 2, ), ), ), ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=42058&edit=1

« previous php.bugs (#116014) next »