linux下vim實現php遠程調試環境搭

jopen 8年前發布 | 32K 次閱讀 PHP Vim PHP開發

首先是必需組件的安裝。

有三個,vim的DBGp插件,php的xdebug擴展,Chrome瀏覽器的xdebug helper擴展。

一: vim 安裝 dbgp client 插件 下載 DBGp client

$ cd ~/.vim/
$ wget http://www.vim.org/scripts/download_script.php?src_id=7285 -O debugger.zip
$ unzip debugger.zip

二:PHP安裝xdebug擴展

具體安裝方法就不講了,網上例子很多. 官方安裝說明 .

我把我的配置信息貼出來:


[Xdebug]
zend_extension="/home/s/apps/php-5.2.6/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.profiler_enable=0    ;開啟profile
xdebug.profiler_enable_trigger=1    ;使用觸發器開啟profile
xdebug.profiler_output_dir="/home/s/logs/xdebugLog"
xdebug.auto_trace=0     ;開啟trace
xdebug.trace_enable_trigger=1   ;使用觸發器開啟trace
xdebug.trace_output_dir="/home/s/logs/xdebugLog"
xdebug.cli_color=1
xdebug.collect_params=2
xdebug.collect_return=on

;remote debug   ;開啟遠程調試
xdebug.remote_enable=1
xdebug.remote_autostart=Off
xdebug.remote_port=9000 ;遠程端口,不是你web服務的端口,如果沒有沖突,一般不用修改。
其中需要注意的是有注釋的地方,不自動開啟profile和trace,因為這樣每次請求都會保存相應信息,會把磁盤爆掉的。把觸發器打開,這樣,只有在請求的時候帶特定信息的時候,才會記錄相應的性能信息。觸發器的實現機制是:在請求時,如果GET/POST/COOKIE信息中包含特定的變量,會開啟對應的debug,profile或trace,所以我們可以通過在web中訪問頁面時,添加對應的變量來開啟相應的功能。如果每次都自己拼接這個,也挺麻煩,所以會介紹后邊的xdebug helper的chrome擴展,想開啟任何一個功能的時候,點擊一下擴展就可以了。也就是說,這個擴展不是調試必須的,但是會讓你感覺用起來很方便。 三:chrome擴展xdebug helper

地址: https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc

如果在 chrome://apps里搜索xdebug helper搜索不到,記得把你的語言改為 English.

xdebug-helper-introduction20140226142342

xdebug helper兩處配置要注意, IDE Key要注意選擇Other, 值為1,然后保存。

第二個是domain白名單,如果不希望每個頁面都出調試的debug icon,就把開發時的域名填進來,比如localhost神馬的。其實icon很小,也不太礙事,可以不用設置。

開始使用

如果不要debug調試,只是需要記錄profile和trace信息,看一下性能問題,那么很簡單,直接在chrome訪問對應的url,會在url右側看到一個xdebg helper 的小icon,點擊后,選擇 profile或trace,再刷新,就可以在預先設置的目錄見到對應的文件了。

cachegrind* 是profile的文件,trace* 是trace的文件。

在windows下使用WinCacheGrind可以方便的查看profile的信息。

xdebug_helper_debug_profile_trace

xdebug_output_file_trace_profile

winCacheGrind_output

最后,是 如何開啟遠程調試 .

用vim編輯程序文件,在需要中斷的地方使用:Bp命令打上斷點。然后按F5執行監聽。

這個時候,vim會提示 waiting for a new connection on port 9000 for 5 seconds… ,所以這個時候你需要在5s內向服務端發起帶中斷的請求,在前邊的url地址,我們把xdebug helper的debug選擇上,刷新頁面,vim就會進入中斷了。右側有相關提示,我們就可以按GDB的方式逐步調試啦。如果沒有安裝xdebug helper,也無所謂,自己手動在url上拼接一個參數: &XDEBUG_SESSION_START=1 也可以開啟遠程調試的。

xdebug_remote_debug_how

轉自: http://digdeeply.org/archives/tag/dbgp

來自: http://www.finalshares.com/read-5836

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!