摘要:單擊此按鈕可暫停程序執(zhí)行。單擊此按鈕,通過標(biāo)準(zhǔn)關(guān)閉腳本從外部終止當(dāng)前進(jìn)程。實際上,插入符號處的當(dāng)前行有一個臨時斷點集,一旦程序執(zhí)行暫停,就會刪除它。心中始終十分抗拒,導(dǎo)致功能變更延期。
介紹
在 上一期 中我們已經(jīng)把 xdebug 和 phpstorm 的關(guān)聯(lián)配置設(shè)置好了,接下來我將會深入的介紹 debug 的運用。分為3點內(nèi)容
快速找到錯誤的原因
輔助讀懂比效復(fù)雜的代碼
代碼重構(gòu)
環(huán)境說明windows
vagrant+vbox+centos7+nginx+php
phpstorm
學(xué)前準(zhǔn)備xdebug + phpstorm 調(diào)試環(huán)境已經(jīng)可以正常運行
調(diào)試跳轉(zhuǎn)圖標(biāo) | 描述 |
---|---|
當(dāng)當(dāng)前應(yīng)用程序停止時,單擊此按鈕再次調(diào)試。 | |
單擊此按鈕可暫停程序執(zhí)行。 | |
單擊此按鈕,通過標(biāo)準(zhǔn)關(guān)閉腳本從外部終止當(dāng)前進(jìn)程。 | |
單擊此按鈕以打開斷點對話框,您可以在其中配置斷點行為。 | |
使用此按鈕切換斷點狀態(tài)。 | |
單擊此按鈕以突出顯示編輯器中的當(dāng)前執(zhí)行點,并在框架窗格中顯示相應(yīng)的堆??蚣?。 | |
單擊此按鈕執(zhí)行程序,直到當(dāng)前方法或文件中的下一行,跳過在當(dāng)前執(zhí)行點引用的方法(如果有的話)。如果當(dāng)前行是方法中的最后一行,則執(zhí)行步驟到在此方法之后執(zhí)行的行。 | |
f7單擊此按鈕,使調(diào)試器步驟進(jìn)入在當(dāng)前執(zhí)行點調(diào)用的方法。 | |
單擊此按鈕,調(diào)試器將從當(dāng)前方法中退出,并立即執(zhí)行該行。 | |
單擊此按鈕恢復(fù)程序執(zhí)行并暫停,直到執(zhí)行點到達(dá)編輯器中當(dāng)前游標(biāo)位置的行。不需要斷點。實際上,插入符號處的當(dāng)前行有一個臨時斷點集,一旦程序執(zhí)行暫停,就會刪除它。因此,如果插入符號位于已經(jīng)執(zhí)行的行上,則程序?qū)⒅匦麻_始執(zhí)行,因為無法回滾到以前的斷點。當(dāng)您深入到方法序列中并需要st時,這個操作特別有用 |
在開發(fā)中我們經(jīng)常會碰到很多 bug。一般有以下幾種
php 語言報錯
報錯時,我們應(yīng)該先看下報錯內(nèi)容,這很重要,他可以讓你知道你的代碼錯那里了。一般會返回給你錯誤是那一行,環(huán)境裝了 xdebug 后還會顯示錯誤的地址運行時經(jīng)過了那些文件,那些方法
寫數(shù)據(jù)庫操作失靈
這個錯誤難度就高了些。因為你需要了解當(dāng)前業(yè)務(wù)需要改那些數(shù)據(jù)表。操作過后那張表的數(shù)據(jù)漏了。這個操作你有沒有寫。雖然說只要自己了解業(yè)務(wù)就可以不用調(diào)試也可以快速解決,但是傳參或返回很復(fù)雜。那這個就很適合了
輔助讀懂比效復(fù)雜的代碼工作中并不是全都是自己使用框架開發(fā),有時還會為了進(jìn)度使用一些開源的項目(ecshop,dedecms)。也可能是前同事遺留的代碼。自己寫的東西很容易看懂,但是看別人的東西,如果寫的不好那絕對是惡夢。你會在看都不想看,心里在吐槽代碼不合理的地方。心中始終十分抗拒,導(dǎo)致功能變更延期。
復(fù)雜的代碼只需要知道它會接收什么參數(shù),返回什么東西就可以了。如果不是很重要完全可以不看它內(nèi)部的內(nèi)容。把它隔離開來。
學(xué)習(xí)技術(shù)超前的代碼運行邏輯。那就需要進(jìn)行斷點調(diào)試了。
代碼重構(gòu)代碼重構(gòu)是維護(hù)一個寫的很爛的項目必需經(jīng)歷的過程。重構(gòu)的核心也是知道指定的方法有那些改變,或把它拆分出來。或把它整合到一塊。
斷點查看原邏輯有那些操作,記錄下來,如果不是算法,主要記錄的還是數(shù)據(jù)表操作
每個操作都有傳參和返回,在調(diào)試模式下我們很容易就知道訪問方法前環(huán)境中有那些參數(shù)可供使用
重構(gòu)完后,可以使用相同的請求參數(shù)來訪問重構(gòu)代碼。結(jié)果一致就為重構(gòu)完成了
系列文章xdebug的安裝配置
xdebug的實際運用 [本篇]
xdebug性能分析
FQA文章字太多了,不想看
我的文章有對應(yīng)的視頻,你可以通過視頻來進(jìn)行學(xué)習(xí)這一期的內(nèi)容。
但是你不要吐槽我語言表達(dá)能力和普通話,因為我平時也不怎么說話,想練習(xí)口才才做的視頻。附上 鏈接
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29382.html
摘要:生成性能分析文件,再通過分析軟件進(jìn)行查看性能結(jié)果。性能分析工具詳解我們通過打開性能分析文件打頭的文件??梢院芎玫膮^(qū)分性能分析文件。 介紹 在上兩期中我已經(jīng)對 xdebug 最核心的操作已經(jīng)進(jìn)行了講解。相信你可以擺脫寫 var_dump($data);die; 的編寫和完成調(diào)試后的清除了。這一期我們來學(xué)習(xí)xdebug的第二個特色-性能分析。這一個功能,在實操中用的不是很多。 使用場景: ...
摘要:當(dāng)我在官網(wǎng)看到了遠(yuǎn)程調(diào)試原理圖時,我才知道應(yīng)該怎么配置。配置的參數(shù)也少了很多,也不需要在里對一個個請求地址進(jìn)行配置。其他可以配置可以共用。但是如果你使用的是本地的那他就會出現(xiàn)端口被占用的情況。 介紹 我之前配置直接按網(wǎng)上的文章進(jìn)行配置總是配置不成功,里面很多東西不了解。當(dāng)我在 xdebug 官網(wǎng)看到了 xdebug 遠(yuǎn)程調(diào)試原理圖時,我才知道應(yīng)該怎么配置 xdebug。配置的參數(shù)也少了...
摘要:目前有兩種流行的調(diào)試器,我在學(xué)習(xí)和研究過程中,發(fā)現(xiàn)網(wǎng)上的各種信息過于凌亂,感到痛苦,影響理解和使用。腳本在運行時,由插件向發(fā)起連接,將調(diào)試信息發(fā)送給,并通過協(xié)議進(jìn)行互動。這種模式的缺陷是配死了目標(biāo),不能支持多用戶調(diào)試。 > 工欲善其事必先利其器,學(xué)習(xí)一門新語言,調(diào)試器的使用必不可少,本文分享一下PHP調(diào)試器的使用。 PHP目前有兩種流行的調(diào)試器, Xdebug Zend Debugg...
摘要:地址這是一份適用于生產(chǎn)和開發(fā)環(huán)境的。目前已經(jīng)在我司的生產(chǎn)環(huán)境上并運行良好。日常開發(fā)中也是基于此鏡像進(jìn)行的。如果想快速看看鏡像里有啥東西,只需要運行其中替換成你實際的鏡像。開發(fā)環(huán)境的使用單獨運行這個容器是沒有意義的。 GITHUB地址:https://github.com/banyancheu... 這是一份適用于生產(chǎn)和開發(fā)環(huán)境的 Dockerfile。 在 phuison/baseim...
閱讀 2994·2021-09-26 10:18
閱讀 5312·2021-09-22 15:02
閱讀 2812·2019-08-30 15:53
閱讀 1862·2019-08-29 18:41
閱讀 2710·2019-08-27 10:58
閱讀 2643·2019-08-26 13:49
閱讀 2767·2019-08-26 12:17
閱讀 915·2019-08-26 11:49