zoukankan      html  css  js  c++  java
  • PHP 打印调用函数入口地址(堆栈)

    今天网站出现一个BUG,然后直接在数据库类里面写日志,看是哪条SQL出了问题,SQL语句到是找到了,但是不知道这条SQL语句来自何处,于是就想啊,如果能有一个办法,查看当前正在运行的这个方法是被哪个方法调用的,以及上一个方法又是哪个方法调用的,以此类推,找到入口地址多好啊。不过以前自己也想过,也在网上去搜过,就是没有找到相关的办法,今天一同事(前辈)说JAVA里面这种调试用得很普遍,叫这种堆栈调试,我是就在网上搜PHP堆栈。居然被我找到了,然后把自己的办法写出来。

    function print_stack_trace()
    {
        $array =debug_backtrace();
      //print_r($array);//信息很齐全
       unset($array[0]);
       foreach($array as $row)
        {
           $html .=$row['file'].':'.$row['line'].'行,调用方法:'.$row['function']."<p>";
        }
        return$html;
    }


    我在我的数据库的核心查询函数里面调用这个方法,打印结果如下:

    D:wampwwwmeileleincludescls_mysql.php:471行,调用方法:query
    
    D:wampwwwmeileleincludescls_mysql.php:507行,调用方法:getAll
    
    D:wampwwwmeileleincludeslib_common.php:732行,调用方法:getAllCached
    
    D:wampwwwmeileleincludesinit.php:113行,调用方法:load_config
    
    D:wampwwwmeileleindex.php:4行,调用方法:include_once

    一目了然,一直找到了入口,太强悍了。以后调试又多了一种办法

    转自 http://blog.csdn.net/newjueqi/article/details/6865722

  • 相关阅读:
    维克里拍卖 Vickrey auction
    弱占优策略--Weakly Dominant Strategy
    乱码电路(Garbled circuits)
    P和NP问题
    揭秘Facebook首个数据中心:全球15亿用户的账户信息都在这里
    数学符号“s.t.”的意义
    PKI系统深入介绍
    [转]公钥,私钥和数字签名这样最好理解
    Exif
    任我行 CRM 9.4
  • 原文地址:https://www.cnblogs.com/ggjucheng/p/3348555.html
Copyright © 2011-2022 走看看