cleaner way to print stack traces?
cleaner way to print stack traces?
am 10.08.2007 22:08:38 von laredotornado
Hi,
I'm using PHP 4.4.4 witih Apache 2 on Linux. I recently discovered
the debug_backtrace() statement. However, when I run the command,
var_dump(debug_backtrace());
what is printed out is a mess. See below. What is a cleaner way of
printing out stack traces. I like the way Java does it. Anyway to
emulate that?
Thanks, - Dave
array(4) { [0]=> array(4) { ["file"]=> string(65) "/usr/local/apache2/
htdocs/refillingstation/custom_product_fns.php" ["line"]=> int(184)
["function"]=> string(10) "executesql" ["args"]=> array(1) { [0]=>
&string(133) "UPDATE ORDER_FORM_CARTRIDGES SET PRICE = ROUND(3, 2),
RETAIL_PRICE = ROUND(4, 2) WHERE P.PRODUCT_ID = 32647) WHERE
PRODUCT_ID = 32647" } } [1]=> array(4) { ["file"]=> string(65) "/usr/
local/apache2/htdocs/refillingstation/
custom_product_fns.php" ["line"]=> int(148) ["function"]=> string(17)
"updatecustomprice" ["args"]=> array(7) { [0]=> &string(1) "6" [1]=>
&string(1) "2" [2]=> &string(6) "C4844A" [3]=> &string(9) "#10
Black" [4]=> &float(3) [5]=> &float(4) [6]=> &string(0) "" } } [2]=>
array(4) { ["file"]=> string(96) "/usr/local/apache2/htdocs/
refillingstation/admin/custom_prices/
import_custom_prices_response.php" ["line"]=> int(24) ["function"]=>
string(19) "updatecustompricing" ["args"]=> array(2) { [0]=>
&string(14) "/tmp/php7TxSi7" [1]=> &string(1) "2" } } [3]=> array(4)
{ ["file"]=> string(66) "/usr/local/apache2/htdocs/refillingstation/
admin/accesscontrol.php" ["line"]=> int(58) ["args"]=> array(1)
{ [0]=> string(96) "/usr/local/apache2/htdocs/refillingstation/admin/
custom_prices/import_custom_prices_response.php" } ["function"]=>
string(7) "include" } }
Re: cleaner way to print stack traces?
am 10.08.2007 22:14:59 von luiheidsgoeroe
On Fri, 10 Aug 2007 22:08:38 +0200, laredotornado@zipmail.com
wrote:
> Hi,
>
> I'm using PHP 4.4.4 witih Apache 2 on Linux. I recently discovered
> the debug_backtrace() statement. However, when I run the command,
>
> var_dump(debug_backtrace());
>
> what is printed out is a mess. See below. What is a cleaner way of
> printing out stack traces. I like the way Java does it. Anyway to
> emulate that?
No idea how Java does it. In PHP 5 (you should upgrade anyway) we have
debug_print_backtrace(). Easily recreated using some loop &
debug_backtrace() itself I'd think. It's also in PHP_Compat:
--
Rik Wasmus
Re: cleaner way to print stack traces?
am 10.08.2007 22:45:57 von ELINTPimp
On Aug 10, 4:08 pm, "laredotorn...@zipmail.com"
wrote:
> Hi,
>
> I'm using PHP 4.4.4 witih Apache 2 on Linux. I recently discovered
> the debug_backtrace() statement. However, when I run the command,
>
> var_dump(debug_backtrace());
>
> what is printed out is a mess. See below. What is a cleaner way of
> printing out stack traces. I like the way Java does it. Anyway to
> emulate that?
>
> Thanks, - Dave
>
> array(4) { [0]=> array(4) { ["file"]=> string(65) "/usr/local/apache2/
> htdocs/refillingstation/custom_product_fns.php" ["line"]=> int(184)
> ["function"]=> string(10) "executesql" ["args"]=> array(1) { [0]=>
> &string(133) "UPDATE ORDER_FORM_CARTRIDGES SET PRICE = ROUND(3, 2),
> RETAIL_PRICE = ROUND(4, 2) WHERE P.PRODUCT_ID = 32647) WHERE
> PRODUCT_ID = 32647" } } [1]=> array(4) { ["file"]=> string(65) "/usr/
> local/apache2/htdocs/refillingstation/
> custom_product_fns.php" ["line"]=> int(148) ["function"]=> string(17)
> "updatecustomprice" ["args"]=> array(7) { [0]=> &string(1) "6" [1]=>
> &string(1) "2" [2]=> &string(6) "C4844A" [3]=> &string(9) "#10
> Black" [4]=> &float(3) [5]=> &float(4) [6]=> &string(0) "" } } [2]=>
> array(4) { ["file"]=> string(96) "/usr/local/apache2/htdocs/
> refillingstation/admin/custom_prices/
> import_custom_prices_response.php" ["line"]=> int(24) ["function"]=>
> string(19) "updatecustompricing" ["args"]=> array(2) { [0]=>
> &string(14) "/tmp/php7TxSi7" [1]=> &string(1) "2" } } [3]=> array(4)
> { ["file"]=> string(66) "/usr/local/apache2/htdocs/refillingstation/
> admin/accesscontrol.php" ["line"]=> int(58) ["args"]=> array(1)
> { [0]=> string(96) "/usr/local/apache2/htdocs/refillingstation/admin/
> custom_prices/import_custom_prices_response.php" } ["function"]=>
> string(7) "include" } }
Assuming you are outputting to a browser...you could always do:
echo "";
var_dump(debug_backtrace());
echo "
";
That should work...
Re: cleaner way to print stack traces?
am 10.08.2007 22:56:53 von Moot
On Aug 10, 4:45 pm, ELINTPimp wrote:
> On Aug 10, 4:08 pm, "laredotorn...@zipmail.com"
>
>
>
> wrote:
> > Hi,
>
> > I'm using PHP 4.4.4 witih Apache 2 on Linux. I recently discovered
> > the debug_backtrace() statement. However, when I run the command,
>
> > var_dump(debug_backtrace());
>
> > what is printed out is a mess. See below. What is a cleaner way of
> > printing out stack traces. I like the way Java does it. Anyway to
> > emulate that?
>
> > Thanks, - Dave
>
> > array(4) { [0]=> array(4) { ["file"]=> string(65) "/usr/local/apache2/
> > htdocs/refillingstation/custom_product_fns.php" ["line"]=> int(184)
> > ["function"]=> string(10) "executesql" ["args"]=> array(1) { [0]=>
> > &string(133) "UPDATE ORDER_FORM_CARTRIDGES SET PRICE = ROUND(3, 2),
> > RETAIL_PRICE = ROUND(4, 2) WHERE P.PRODUCT_ID = 32647) WHERE
> > PRODUCT_ID = 32647" } } [1]=> array(4) { ["file"]=> string(65) "/usr/
> > local/apache2/htdocs/refillingstation/
> > custom_product_fns.php" ["line"]=> int(148) ["function"]=> string(17)
> > "updatecustomprice" ["args"]=> array(7) { [0]=> &string(1) "6" [1]=>
> > &string(1) "2" [2]=> &string(6) "C4844A" [3]=> &string(9) "#10
> > Black" [4]=> &float(3) [5]=> &float(4) [6]=> &string(0) "" } } [2]=>
> > array(4) { ["file"]=> string(96) "/usr/local/apache2/htdocs/
> > refillingstation/admin/custom_prices/
> > import_custom_prices_response.php" ["line"]=> int(24) ["function"]=>
> > string(19) "updatecustompricing" ["args"]=> array(2) { [0]=>
> > &string(14) "/tmp/php7TxSi7" [1]=> &string(1) "2" } } [3]=> array(4)
> > { ["file"]=> string(66) "/usr/local/apache2/htdocs/refillingstation/
> > admin/accesscontrol.php" ["line"]=> int(58) ["args"]=> array(1)
> > { [0]=> string(96) "/usr/local/apache2/htdocs/refillingstation/admin/
> > custom_prices/import_custom_prices_response.php" } ["function"]=>
> > string(7) "include" } }
>
> Assuming you are outputting to a browser...you could always do:
> echo "";
> var_dump(debug_backtrace());
> echo "
";
>
> That should work...
On top of the recommendation, I'd also recommend using
print_r instead of var_dump. At least for me, I find it presents a
much cleaner output.
Re: cleaner way to print stack traces?
am 11.08.2007 01:20:16 von colin.mckinnon
On 10 Aug, 21:08, "laredotorn...@zipmail.com"
wrote:
> Hi,
>
> I'm using PHP 4.4.4 witih Apache 2 on Linux. I recently discovered
> the debug_backtrace() statement. However, when I run the command,
>
> var_dump(debug_backtrace());
>
> what is printed out is a mess. See below.
So write a program to format it nicely.
> What is a cleaner way of
> printing out stack traces. I like the way Java does it. Anyway to
> emulate that?
It doesn't - someone's written their own rendering tool to format it
nicely.
C.
Re: cleaner way to print stack traces?
am 11.08.2007 08:56:21 von Carl Vondrick
laredotornado@zipmail.com wrote:
> what is printed out is a mess. Â See below. Â What is a cleaner way of
> printing out stack traces. Â I like the way Java does it. Â Anyway to
> emulate that?
Check out the xdebug extension.
Re: cleaner way to print stack traces?
am 13.08.2007 10:00:27 von Toby A Inkster
Carl Vondrick wrote:
> laredotornado@zipmail.com wrote:
>
>> what is printed out is a mess. Â See below. Â What is a cleaner way of
>> printing out stack traces. Â I like the way Java does it. Â Anyway to
>> emulate that?
>
> Check out the xdebug extension.
For PHP 5, check out the link in my signature.
--
Toby A Inkster BSc (Hons) ARCS
[Geek of HTML/SQL/Perl/PHP/Python/Apache/Linux]
[OS: Linux 2.6.12-12mdksmp, up 53 days, 11:39.]
PHP Debugging with Style -OR- How I Learned to Stop Worrying and Love the Bug
http://tobyinkster.co.uk/blog/2007/08/12/php-debugging-with- style/