本篇文章給大家分享的是有關(guān)如何使用gdb調(diào)試找到php當(dāng)前執(zhí)行的代碼,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
創(chuàng)新互聯(lián)是一家成都網(wǎng)站制作、成都網(wǎng)站建設(shè),提供網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,建網(wǎng)站,定制網(wǎng)站,網(wǎng)站開(kāi)發(fā)公司,2013年開(kāi)創(chuàng)至今是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價(jià)值為核心業(yè)務(wù),全程參與項(xiàng)目的網(wǎng)站策劃設(shè)計(jì)制作,前端開(kāi)發(fā),后臺(tái)程序制作以及后期項(xiàng)目運(yùn)營(yíng)并提出專業(yè)建議和思路。
假設(shè)線上有一段php腳本,突然在某天出問(wèn)題了,不處理但是進(jìn)程沒(méi)有退出。這種情況可能是異常休眠或者是有段死循環(huán)代碼,但是我們?cè)趺炊ㄎ荒?,我們這個(gè)時(shí)候最想知道的應(yīng)該是這個(gè)腳本在此刻在做什么吧。這個(gè)是gdb+zbacktrace就有用了。
首先隨便寫(xiě)一個(gè)測(cè)試腳本test.php,里面就寫(xiě)一個(gè)sleep函數(shù),換成死循環(huán)也可以。
<?phpfunction Mecho($i){ echo $i.PHP_EOL; }$i = 20;while($i>0){if($i%2==0){ Mecho($i); }sleep(100000);$i--; }
zbacktrace下載php源碼包里面就有,當(dāng)前我的環(huán)境是新裝的,當(dāng)前的php版本是php7.2.9
直接cli執(zhí)行test.php
php test.php
然后找到當(dāng)前php進(jìn)程
然后用gdb調(diào)試
gdb -p 56571
調(diào)試
source /usr/local/src/php-7.2.9/.gdbinit zbacktrace
這個(gè)時(shí)候就知道了是在test.php的11行 sleep函數(shù)導(dǎo)致的進(jìn)程sleep。
以上就是如何使用gdb調(diào)試找到php當(dāng)前執(zhí)行的代碼,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享名稱:如何使用gdb調(diào)試找到php當(dāng)前執(zhí)行的代碼
分享網(wǎng)址:http://www.rwnh.cn/article18/jgpsdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、面包屑導(dǎo)航、軟件開(kāi)發(fā)、定制網(wǎng)站、ChatGPT、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)