///Debugging PHP code using debug_backtrace

Debugging PHP code using debug_backtrace

Most of the PHP developers debug php code in their local machine just by trial and error using “print_r”,”var_dump” and “echo”. They dont write unit tests or follow any advanced debugger like xdebug. But the problem of using these methods is you cannot fool proof your code and their might be some bugs still present in your code. Lets see how can we debug our code more effectively getting more information from the php interpreter itself. There is a nice function called debug_backtrace() is available in PHP to trace the root of an error. As the name implies, you can trace the execution of you code which produces the error. Have a look at the following code.


<?php
function processUserInput($a, $b)
{
echo divide($a,$b);
}
function divide($c, $d)
{
print_r(debug_backtrace());
}
echo processUserInput(4,0);
?>

This will output the following one

Array
(
    [0] => Array
        (
            [file] => PHPDocument1
            [line] => 5
            [function] => divide
            [args] => Array
                (
                    [0] => 4
                    [1] => 0
                )

        )

    [1] => Array
        (
            [file] => PHPDocument1
            [line] => 14
            [function] => processUserInput
            [args] => Array
                (
                    [0] => 4
                    [1] => 0
                )

        )

    [2] => Array
        (
            [file] => /home/hasin/Zend/ZendStudio-5.5.0/bin/php5/dummy.php
            [line] => 1
            [args] => Array
                (
                    [0] => PHPDocument1
                )

            [function] => include
        )

)

2008-02-28T10:32:40+00:00 February 28th, 2008|PHP|1 Comment

About the Author:

One Comment

  1. andPHP.com February 29, 2008 at 3:34 PM

    Using debug_backtrace to speed up debuging process…

    Hasin Hayder from Developer Tutorials wrote this neat post about using debug_backtrace. It could help you debug your code more efficiently and save you hours of dumping variables and testing functions, not to mention saving you from pulling your hair…

Leave A Comment