linux下vim實現php遠端偵錯環境搭

來源:互聯網
上載者:User
首先是必要元件的安裝。

有三個,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    ;開啟profilexdebug.profiler_enable_trigger=1    ;使用觸發器開啟profilexdebug.profiler_output_dir="/home/s/logs/xdebugLog"xdebug.auto_trace=0     ;開啟tracexdebug.trace_enable_trigger=1   ;使用觸發器開啟tracexdebug.trace_output_dir="/home/s/logs/xdebugLog"xdebug.cli_color=1xdebug.collect_params=2xdebug.collect_return=on      ;remote debug   ;開啟遠端偵錯xdebug.remote_enable=1xdebug.remote_autostart=Offxdebug.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
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.