PHP 列印調用函數入口地址(堆棧),方便調式

來源:互聯網
上載者:User

標籤:des   style   blog   java   color   資料   

今天網站出現一個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:\wamp\www\meilele\includes\cls_mysql.php:471行,調用方法:queryD:\wamp\www\meilele\includes\cls_mysql.php:507行,調用方法:getAllD:\wamp\www\meilele\includes\lib_common.php:732行,調用方法:getAllCachedD:\wamp\www\meilele\includes\init.php:113行,調用方法:load_configD:\wamp\www\meilele\index.php:4行,調用方法:include_once

 

一目瞭然,一直找到了入口,太強悍了。以後調試又多了一種辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.