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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
oscar.lee
November 05, 2014
Technology
93
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
Android の公式 Skill / Android skills
yanzm
0
140
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
150
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
21
6.8k
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
350
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
0
190
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.9k
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
130
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
640
EventBridge Connection
_kensh
5
710
AIのReact習熟度を測る
uhyo
2
370
スキルと MCP ツール、責務をどう分けるか? AI が迷わないインターフェース設計の戦略
cdataj
1
1k
protovalidate-es を導入してみた
bengo4com
0
180
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Everyday Curiosity
cassininazir
0
230
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The Cult of Friendly URLs
andyhume
79
6.9k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Ruling the World: When Life Gets Gamed
codingconduct
0
250
HDC tutorial
michielstock
2
710
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
The Pragmatic Product Professional
lauravandoore
37
7.3k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
300
The untapped power of vector embeddings
frankvandijk
2
1.8k
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