Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
xdebug remote debugging
Search
oscar.lee
November 05, 2014
Technology
94
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
xdebug remote debugging
oscar.lee
November 05, 2014
More Decks by oscar.lee
See All by oscar.lee
How to make sublime plugin
oscar3x39
0
76
web2.0 attack & defence
oscar3x39
0
160
Other Decks in Technology
See All in Technology
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.6k
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
4
26k
AI時代のデータ基盤を考える問い
pacocat
0
280
ソフトウェアサプライチェーンの構造的リスクとコンテナ環境の保護
kyohmizu
5
890
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
コーチングの奥義 何もしないテクニック
jinwatanabe
0
150
わたしが知り合いゼロの勉強会に 行けるようになるまで
r5ni4
1
190
強化学習「理論」入門
enakai00
3
3.6k
【GCC2026】TrueHDRIを用いたルックデブ環境とライティングテクニック
bandainamcostudios
PRO
0
340
内製AIチャットボット開発で学んだ Datadog Agent Observability活用術
mkdev10
0
120
tamachi.go 誕生の裏側
rymiyamoto
1
200
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
550
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
440
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
250
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
280
Balancing Empowerment & Direction
lara
6
1.2k
Speed Design
sergeychernyshev
33
2k
Are puppies a ranking factor?
jonoalderson
2
3.8k
A Soul's Torment
seathinner
6
3.5k
Making Projects Easy
brettharned
120
6.7k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Transcript
Xdebug! remote debugging! author:
[email protected]
簡介 Xdebug是⼀一個開放源代碼的PHP程序調試器 可以⽤用來跟踪,調試分析PHP程序的運⾏行狀況。
環境 Remote centos + nginx + php + Xdebug Local
SublimeText + SublimeTextXdebug Browser (chrome) ! ! Xdebug Helper
Remote 安裝Xdebug yum install php-devel yum install php-pear yum install
gcc gcc-c++ autoconf automake pecl install Xdebug
Remote 設定Xdebug locate php.ini //尋找php.ini位置 vi /etc/php.ini ! //加⼊入xdebug.so 路徑
zend_extension=/usr/lib64/php/modules/xdebug.so ! [xdebug] xdebug.remote_port=9000 xdebug.remote_enable=1 xdebug.remote_connect_back=1 xdebug.remote_handler=dbgp xdebug.remote_host=127.0.0.1 xdebug.remote_autostart=1 xdebug.profiler_enable=1
Remote設定nginx vi /etc/nginx/sites-available/xxxx.com location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index
index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/ $fastcgi_script_name; fastcgi_param APPLICATION_ENV development; } ! vi /etc/php-fpm.d/www.conf [www] listen = 127.0.0.1:9000 ! 重起⽣生效 service php-fpm restart service nginx restart
Local 安裝SublimetextXdebug⽅方式 需Packge Control Mac:Command + Shift + P Win:
Ctrl + Shift + P
Local SublimeTextXdebug設定 在專案根⺫⽬目錄下新增xdebug.sublime-project { "folders": [ { "follow_symlinks": true, "path":
"." } ], "settings": { "xdebug": { "path_mapping": { “/var/www/html/xxxx" : “~/wwwroot/project/xxxx", }, "url": “http://www.hiiir.com/api/v1”, "super_globals": true, "close_on_stop": true } } }
Chrome 安裝 XdebugHelper https://chrome.google.com/webstore/detail/xdebug-helper/ eadndfjplgieldjbigjakmdgkmoaaaoc
Xdebug Helper使⽤用 xdebug helper 設定到 Debug模式
功能簡介 Start/Stop debugging session ( 啟動/關閉 Xdebug ) add/remove breakpoint
( 斷點,執⾏行到此會停住 ) Set watch expression ( 建⽴立觀察 ) Step over ( 遇到函式呼叫時,確定該函式不會有問題時使⽤用 ) Step into ( 遇到函式呼叫時跳進該函式 ) Step out ( 在函式中確認後⾯面程式無誤,跳⾄至上⼀一層 ) Session Evaluate ( 等同eval($code) )
視窗簡介 • Xdebug Context ( 觀察⺫⽬目前所有變數狀態 ) • Xdebug Watch
( 觀察某變數,歷程變化狀態 ) • Xdebug Stack ( 執⾏行 檔案⾏行⾛走路徑 ) • Xdebug Breakpoint ( 斷點⾏行數 )
測試程式 <?php ! $x = 1; $y = 2; !
if ($x + $y == 2) { switch ($z) { case 'cat': echo 'meow '; case 'dog': echo 'Wang '; default: break; } } else { echo 'end'; } ⺫⽬目標: 輸出meow wang ! ! 1. 改變 $x = 0 結果 $x + $y = 2 ! 2. 新增 $z = ‘cat’; 結果 echo ‘meow’; ! 3.改變 $z = ‘dog’; 結果 echo ‘Wang’;
啟動伺服器 php -S localhost:8000
斷點 右鍵 Add Breakpoint 或者 Fn + Command +F8
啟動Sublime Xdebug Shift + Command + P! Xdebug: Start Debugging
斷點視窗 Xdebug Breakpoint
執⾏行位置 斷點
Session Evaluate $x = 0;
Xdebug Step Into
Xdebug Step Into
> session evaluate $y = ‘cat’; > step into >
session evaluate $y = ‘dog’; > Run ! switch ($y) { case 'cat': echo 'meow '; case 'dog': echo 'Wang '; default: break; } Run
Timeout http://php.net/manual/es/function.set-time- limit.php! max_execution_time = 30
Q&A