3 回答

TA貢獻1876條經驗 獲得超7個贊
長話短說(如何檢查 VSCode 是否正在偵聽端口 9000)
啟動 XAMPP,啟動 VSCode
打開你的 php 腳本
設置斷點
打開一個 Linux shell(我在 Windows 上的 Ubuntu 上使用 Bash)
在shell中運行telnet 0.0.0.0 9000或telnet localhost 9000觀察連接失敗
root ~ $ telnet localhost 9000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
root ~ $ telnet 0.0.0.0 9000
Trying 0.0.0.0...
telnet: Unable to connect to remote host: Connection refused
開始調試并看到如上所述的凍結調試彈出窗口
運行telnet 0.0.0.0 9000或telnet localhost 9000在 shell 中運行并注意區別:您已連接到 VScode!
root ~ $ telnet 0.0.0.0 9000
Trying 0.0.0.0...
Connected to 0.0.0.0.
Escape character is '^]'.
單擊凍結的調試彈出窗口上的停止按鈕并在外殼中觀察
stop -i 1 Connection closed by foreign host.
root ~ $
得出結論,VSCode 確實在監聽 0.0.0.0:9000 和 localhost:9000。
撓頭,回到 VSCode
開始調試
注意底部的橙色狀態欄,上面寫著“Listen to XDebug”
注意菜單欄下方的下拉菜單,上面寫著“綠色箭頭”和“監聽 XDebug”
探索下拉菜單并(重新)發現第二個配置“啟動當前打開的腳本”,意識到/記住您launch.json有 2 個配置
選擇“啟動當前打開的腳本”時單擊綠色箭頭,看到錯誤彈出“listen EARDRINUSE: address already in use :::9000”
取消錯誤提示,點擊調試彈窗的停止按鈕停止調試,注意底部菜單欄變為藍色
當下拉菜單中再次顯示“啟動當前打開的腳本”時單擊綠色箭頭...并注意調試按預期開始
麾!贊揚@LazyOne 的幫助!感謝上天賜予 stackoverflow 社區!
“Listen for XDebug”配置launch.json用于調試從瀏覽器會話啟動的腳本:(i)在 VSCode 中設置斷點,(ii)使用“Listen for XDebug”配置開始調試,(iii)啟動腳本通過在瀏覽器中發起請求,(iv) 觀察 VSCode 是否在處理請求時觸發斷點
短篇故事
當您開始在 VSCode 中調試 php 腳本時,請確保選擇“啟動當前打開的腳本”作為配置,請參見下面的屏幕截圖。
事后諸葛亮
我已經改變launch.json了
"configurations": [
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
},
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000
}
]
這樣,“啟動當前打開的腳本”是默認設置,當我使用主菜單中的“調試|開始調試 F5”開始調試時將使用該腳本。

TA貢獻1834條經驗 獲得超8個贊
launch.json(默認配置):
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000,
}
]}
在 php.ini 中包含指令 xdebug.idkey=VSCODE 是絕對必要的,即使我在文檔中沒有找到對它的任何引用。
[xDebug]
zend_extension="c:\xampp\php\ext\php_xdebug-2.9.8-7.3-vc15-x86_64.dll"
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.idekey=VSCODE

TA貢獻1820條經驗 獲得超9個贊
我剛剛遇到了這個問題,我試圖聽 XDebug,但當我嘗試按 F5 或運行/調試時什么也沒發生......
事實證明,我的工作區中添加了一些幻像文件夾(我一直在使用一些升級工具為我正在處理的應用程序運行一堆測試,所以我猜這就是它的來源?)。
為了能夠再次“運行”調試過程,我需要從工作區中刪除那個“額外”文件夾。希望這可以幫助遇到類似問題的其他人(不像我那樣愚蠢)。
- 3 回答
- 0 關注
- 240 瀏覽
添加回答
舉報