英文:
xdebug not breaking in controller at all using laravel
问题
我正在尝试在Visual Studio Code中使用xdebug,但一切都不起作用。我已安装并启用了xdebug,以及Visual Studio Code扩展PHP Debug。请查看我的设置并指导我是否有错。
php.ini设置:
[xDebug]
zend_extension="C:\laragon\bin\php\php-8.0.24-Win32-vs16-x64\ext\php_xdebug.dll"
xdebug.mode=debug
xdebug.start_with_request=Yes
;xdebug.client_port=80
;xdebug.remote_port=80
xdebug.log="C:\laragon\debug.log"
xdebug.log_level=7
xdebug.idekey=VSCODE
xdebug.client_host="mysite.test"
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 80,
"pathMappings": {
"C:/laragon/www/adamjee": "${workspaceFolder}",
},
"ignore": [
"**/vendor/**/*.php"
]
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 0,
"runtimeArgs": [
"-dxdebug.start_with_request=yes"
],
"env": {
"XDEBUG_MODE": "debug,develop",
"XDEBUG_CONFIG": "client_port=${port}"
}
},
{
"name": "Launch Built-in web server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-dxdebug.mode=debug",
"-dxdebug.start_with_request=yes",
"-S",
"localhost:0"
],
"program": "",
"cwd": "${workspaceRoot}",
"port": 9003,
"serverReadyAction": {
"pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
}
]
}
请指导我是否存在问题。
英文:
I am trying to use xdebug with visual studio code.
but nothing is working out.
Installed and enabled xdebug and I am a visual Studio code extension PHP debug.
Please review my setting below and guide me if I am doing something wrong.
php.ini settings
[xDebug]
zend_extension="C:\laragon\bin\php\php-8.0.24-Win32-vs16-x64\ext\php_xdebug.dll"
xdebug.mode=debug
xdebug.start_with_request=Yes
;xdebug.client_port=80
;xdebug.remote_port=80
xdebug.log="C:\laragon\debug.log"
xdebug.log_level=7
xdebug.idekey=VSCODE
xdebug.client_host="mysite.test"
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 80,
"pathMappings": {
"C:/laragon/www/adamjee": "${workspaceFolder}",
},
"ignore": [
"**/vendor/**/*.php"
]
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 0,
"runtimeArgs": [
"-dxdebug.start_with_request=yes"
],
"env": {
"XDEBUG_MODE": "debug,develop",
"XDEBUG_CONFIG": "client_port=${port}"
}
},
{
"name": "Launch Built-in web server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-dxdebug.mode=debug",
"-dxdebug.start_with_request=yes",
"-S",
"localhost:0"
],
"program": "",
"cwd": "${workspaceRoot}",
"port": 9003,
"serverReadyAction": {
"pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
}
]
}
please guide where I am doing wrong.
xdebug logs
[14160] Log opened at 2023-07-27 12:26:08.027714
[14160] [Step Debug] INFO: Connecting to configured address/port: adamjee.test:80.
[14160] [Step Debug] INFO: Connected to debugging client: adamjee.test:80 (through xdebug.client_host/xdebug.client_port).
[14160] [Step Debug] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///C:/laragon/www/adamjee/index.php" language="PHP" xdebug:language_version="8.0.24" protocol_version="1.0" appid="14160" idekey="VSCODE"><engine version="3.2.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2023 by Derick Rethans]]></copyright></init>
[14160] [Step Debug] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
[13228] Log opened at 2023-07-27 12:26:09.225547
[13228] [Step Debug] INFO: Connecting to configured address/port: adamjee.test:80.
[14160] Log closed at 2023-07-27 12:26:09.226357
[13228] [Step Debug] INFO: Connected to debugging client: adamjee.test:80 (through xdebug.client_host/xdebug.client_port).
[13228] [Step Debug] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///C:/laragon/www/adamjee/index.php" language="PHP" xdebug:language_version="8.0.24" protocol_version="1.0" appid="13228" idekey="VSCODE"><engine version="3.2.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2023 by Derick Rethans]]></copyright></init>
[13228] [Step Debug] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
[13228] Log closed at 2023-07-27 12:26:13.534187
[13228] Log opened at 2023-07-27 12:26:13.661112
[13228] [Step Debug] INFO: Connecting to configured address/port: adamjee.test:80.
[13228] [Step Debug] INFO: Connected to debugging client: adamjee.test:80 (through xdebug.client_host/xdebug.client_port).
[13228] [Step Debug] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///C:/laragon/www/adamjee/index.php" language="PHP" xdebug:language_version="8.0.24" protocol_version="1.0" appid="13228" idekey="VSCODE"><engine version="3.2.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2023 by Derick Rethans]]></copyright></init>
[13228] [Step Debug] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
[13228] Log closed at 2023-07-27 12:26:15.526825
[13228] Log opened at 2023-07-27 12:26:15.544789
[13228] [Step Debug] INFO: Connecting to configured address/port: adamjee.test:80.
[13228] [Step Debug] INFO: Connected to debugging client: adamjee.test:80 (through xdebug.client_host/xdebug.client_port).
[13228] [Step Debug] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///C:/laragon/www/adamjee/index.php" language="PHP" xdebug:language_version="8.0.24" protocol_version="1.0" appid="13228" idekey="VSCODE"><engine version="3.2.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2023 by Derick Rethans]]></copyright></init>
[13228] [Step Debug] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
[13228] Log closed at 2023-07-27 12:26:16.975555
答案1
得分: 1
以下是您的php.ini
配置中需要更改的部分:
;xdebug.client_port=80
;xdebug.remote_port=80
以及您的launch.json
中需要更改的部分:
"port": 80,
这两者都是错误的,请将它们移除。
Xdebug需要连接到您的IDE正在侦听的端口。默认情况下,这是9003,这也是VS Code的默认端口。请从您的配置中删除此行:
现在,您正在指示Xdebug连接到端口80(根据您的日志,它正在这样做):
[13228] [Step Debug] INFO: Connected to debugging client: adamjee.test:80 (through xdebug.client_host/xdebug.client_port).
[13228] [Step Debug] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///C:/laragon/www/adamjee/index.php" language="PHP" xdebug:language_version="8.0.24" protocol_version="1.0" appid="13228" idekey="VSCODE"><engine version="3.2.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2023 by Derick Rethans]]></copyright></init>
但那是您的web服务器在那里侦听,并且您的Web服务器不理解Xdebug协议,因此在困惑了两秒钟后关闭连接:
[13228] [Step Debug] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
[13228] Log closed at 2023-07-27 12:26:15.526825
英文:
The following bits in your php.ini
configuration:
;xdebug.client_port=80
;xdebug.remote_port=80
and in your launch.json
:
"port": 80,`
Are both wrong. Remove them.
Xdebug needs to connect to a port that your IDE is listening on. This is by default 9003, which is also what VS Code has as default. Please remove this line from your configuration.
Right now, you're instructing Xdebug to connect to port 80 (which your logs indicate that it is doing):
[13228] [Step Debug] INFO: Connected to debugging client: adamjee.test:80 (through xdebug.client_host/xdebug.client_port).
[13228] [Step Debug] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///C:/laragon/www/adamjee/index.php" language="PHP" xdebug:language_version="8.0.24" protocol_version="1.0" appid="13228" idekey="VSCODE"><engine version="3.2.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2023 by Derick Rethans]]></copyright></init>
But that is your web server listening there, and your web server doesn't understand the Xdebug protocol, and hence then closes the connection after two seconds of being confused:
[13228] [Step Debug] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
[13228] Log closed at 2023-07-27 12:26:15.526825
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论