ID: 28377
Updated by: [EMAIL PROTECTED]
Reported By: sean at caedmon dot net
Status: Verified
Bug Type: Scripting Engine problem
Operating System: *
PHP Version: 4CVS-2004-07-02
New Comment:
debug_backtrace loses information in subsequent movements up the
stack.
Simple test script:
<?php
function a() {
b();
}
function b() {
c('foo', 'bar');
}
function c($a, $b){
print_r(debug_backtrace());
d();
}
function d() {
print_r(debug_backtrace());
}
a();
?>
This block should be present in both backtraces:
[function] => c
[args] => Array
(
[0] => foo
[1] => bar
)
In the second backtrace, it is not:
[function] => c
[args] => Array
(
)
This problem does not, as one might expect, propogate to
debug_print_backtrace.
Previous Comments:
------------------------------------------------------------------------
[2005-03-01 18:41:14] helmut at topconcepts dot de
I have the same error with 5.0.3 and 5.0.4-dev
so it's not only a PHP 4 problem
------------------------------------------------------------------------
[2004-05-12 20:43:48] sean at caedmon dot net
Description:
------------
debug_backtrace() behaves strangely when passed as a function
argument.
This does not happen if debug_backtrace is dereferenced (see code), nor
if debug_backtrace() is the first parameter to my custom_callback
function (not denoted in code)
I'll be happy to provide additional details.
This SEEMS like #27397 but is not a ZE2 problem (I'm using 4.3) and is
NOT fixed in CVS.
Thanks,
S
Reproduce code:
---------------
<?php
function doit($a, $b)
{
$trace = debug_backtrace();
custom_callback('dereferenced', $trace);
custom_callback('direct', debug_backtrace());
}
function custom_callback($traceName, $btInfo)
{
echo $traceName ." -- args: ";
echo isset($btInfo[0]['args']) ? 'exists' : 'does not exist';
echo "\n";
}
doit('a','b');
?>
Expected result:
----------------
dereferenced -- args: exists
direct -- args: exists
Actual result:
--------------
dereferenced -- args: exists
direct -- args: does not exist
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=28377&edit=1