|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2009-02-02 22:38 UTC] thekid@php.net
Description:
------------
Exception's stacktraces miss the "args" key in certain situations (whereas debug_backtrace() will report them).
Reproduce code:
---------------
php -r 'class Chained extends Exception { function __construct($message, $cause) { parent::__construct($message); $this->cause= $cause; }} function raise($message, $cause) { throw new Chained($message, new Exception($cause)); } try { raise("Arg", "Cause"); } catch (Exception $e) { var_dump($e->getTrace(), $e->cause->getTrace()); }'
Expected result:
----------------
Twice this:
array(1) {
[0]=>
array(4) {
["file"]=>
string(17) "Command line code"
["line"]=>
int(1)
["function"]=>
string(5) "raise"
["args"]=>
array(2) {
[0]=>
&string(3) "Arg"
[1]=>
&string(5) "Cause"
}
}
}
Actual result:
--------------
array(1) {
[0]=>
array(4) {
["file"]=>
string(17) "Command line code"
["line"]=>
int(1)
["function"]=>
string(5) "raise"
["args"]=>
array(2) {
[0]=>
string(3) "Arg"
[1]=>
string(5) "Cause"
}
}
}
array(1) {
[0]=>
array(3) {
["file"]=>
string(17) "Command line code"
["line"]=>
int(1)
["function"]=>
string(5) "raise"
}
}
The second array is missing the "args" key. In PHP 5.3, it's present.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 30 22:00:01 2025 UTC |
Doesn't help, I tried PHP 5.2 from CVS, which yields the same result: == php -v == PHP 5.2.9RC2-dev (cli) (built: Feb 9 2009 08:46:53) (DEBUG) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies == Results == array(1) { [0]=> array(4) { ["file"]=> string(17) "Command line code" ["line"]=> int(1) ["function"]=> string(5) "raise" ["args"]=> array(2) { [0]=> string(3) "Arg" [1]=> string(5) "Cause" } } } array(1) { [0]=> array(3) { ["file"]=> string(17) "Command line code" ["line"]=> int(1) ["function"]=> string(5) "raise" } }