Edit report at https://bugs.php.net/bug.php?id=54147&edit=1

 ID:                 54147
 Updated by:         dlsni...@php.net
 Reported by:        jacob at jacobweber dot com
 Summary:            debug_backtrace increases memory usage
-Status:             Open
+Status:             Closed
-Type:               Bug
+Type:               Feature/Change Request
 Package:            Unknown/Other Function
 Operating System:   Red Hat Linux
 PHP Version:        5.2.17
-Assigned To:        
+Assigned To:        dlsniper
 Block user comment: N
 Private report:     N

 New Comment:

Please try using this snapshot:

  http://snaps.php.net/php5.3-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/

This has been fixed as of PHP 5.3.6


Previous Comments:
------------------------------------------------------------------------
[2012-11-12 09:41:26] twin at nightmail dot ru

As you suppose, in PHP 5.3.6 option for skip args was added. And for function 
debug_print_backtrace() too.

------------------------------------------------------------------------
[2011-03-03 03:58:43] jacob at jacobweber dot com

Description:
------------
Calling debug_backtrace(false) can lead to a huge increase in memory usage, if 
it's called from within a function that was passed a huge string as an 
argument. 
This is because the string will be duplicated in the "args" field of the result.

It would be nice to have another boolean argument to debug_backtrace, that 
would 
tell it to skip the "args" field. This would be similar to the one that skips 
the 
"object" field.

Or could the arguments be returned as references, so they don't increase memory 
usage?

Test script:
---------------
function test($str) {
        echo "before: ".round(memory_get_usage()/1024/1024, 2)." MB\n";
        debug_backtrace(false);
        echo "after: ".round(memory_get_usage()/1024/1024, 2)." MB\n";
}
test(str_repeat('a', 10000000));


Expected result:
----------------
before: 9.59 MB
after: 9.59 MB

(This is what I get if I remove the debug_backtrace() call.)

Actual result:
--------------
before: 9.59 MB
after: 19.12 MB


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=54147&edit=1

Reply via email to