This is a discussion on cleaner way to print stack traces? within the PHP Language forums, part of the PHP Programming Forums category; Hi, I'm using PHP 4.4.4 witih Apache 2 on Linux. I recently discovered the debug_backtrace() statement. However, ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
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" } } |
|
|||
|
On Fri, 10 Aug 2007 22:08:38 +0200, laredotornado@zipmail.com
<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: <http://pear.php.net/manual/en/package.php.php-compat.components.php> -- Rik Wasmus |
|
|||
|
On Aug 10, 4:08 pm, "laredotorn...@zipmail.com"
<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 "<pre>"; var_dump(debug_backtrace()); echo "</pre>"; That should work... |
|
|||
|
On Aug 10, 4:45 pm, ELINTPimp <smsi...@gmail.com> wrote:
> On Aug 10, 4:08 pm, "laredotorn...@zipmail.com" > > > > <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 "<pre>"; > var_dump(debug_backtrace()); > echo "</pre>"; > > That should work... On top of the <pre></pre> recommendation, I'd also recommend using print_r instead of var_dump. At least for me, I find it presents a much cleaner output. |
|
|||
|
On 10 Aug, 21:08, "laredotorn...@zipmail.com"
<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. |
|
|||
|
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. |
|
|||
|
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/0...ng-with-style/ |