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
1
88
xdebug remote debugging
oscar.lee
November 05, 2014
Tweet
Share
More Decks by oscar.lee
See All by oscar.lee
How to make sublime plugin
oscar3x39
0
70
web2.0 attack & defence
oscar3x39
0
150
Other Decks in Technology
See All in Technology
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
240
Connect 100+を支える技術
kanyamaguc
0
150
AI導入の理想と現実~コストと浸透〜
oprstchn
0
150
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
150
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
2
600
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
Tokyo_reInforce_2025_recap_iam_access_analyzer
hiashisan
0
140
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
5
4.5k
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
370
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
3.2k
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
230
Featured
See All Featured
Embracing the Ebb and Flow
colly
86
4.7k
Practical Orchestrator
shlominoach
188
11k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Done Done
chrislema
184
16k
RailsConf 2023
tenderlove
30
1.1k
Automating Front-end Workflow
addyosmani
1370
200k
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