我尝试配置Xdebug以使用Sublime Text 3,但我无法在Context,Watch或Stack标签中显示任何内容,例如通过设置断点并单击开始调试(启动浏览器)。浏览器打开index.php文件,其中?XDEBUG_SESSION_START=sublime.xdebug
附加到url,但是在到达断点时代码的执行不会停止。
我还尝试将xdebug_break()
添加到index.php无效。
根据我的阅读,在path_mapping
文件中指定.sublime-project
似乎是最有可能的解决方案。 documentation表示:
path_mapping
要进行远程调试以解析文件位置,需要将路径映射与服务器路径配置为键,将本地路径配置为值。
我在Windows 10上使用IIS,因此应用程序的文件存储在C:\inetpub\wwwroot\
中,主页的网址为http://localhost/index.php
我假设分别是服务器路径和本地路径,因此.sublime-project
文件如下所示:
{
"folders":
[
{
"path": "."
}
],
"settings": {
"xdebug": {
"url": "http://localhost/index.php",
"path_mapping" : {"C:\\inetpub\\wwwroot\\" : "http://localhost/index.php"}
}
}
}
这是对的吗?如果是,我的php.ini文件配置是否正确?
[ExtensionList]
.
.
.
zend_extension = "C:\Program Files (x86)\PHP\php-5.6.30-nts-Win32-VC11-x86\ext\php_xdebug-2.5.1-5.6-vc11-nts.dll"
[XDEBUG]
xdebug.default_enable=1
xdebug.remote_autostart=0
xdebug.remote_connect_back=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.remote_host=localhost
答案 0 :(得分:0)
path_mapping
和 php.ini 设置都不正确。
根据@ LazyOne的评论,删除了path_mapping
文件中不正确的.sublime-project
,现在看起来像这样:
{
"folders":
[
{
"path": "."
}
],
"settings": {
"xdebug": {
"url": "http://localhost/index.php"
}
}
}
然后将xdebug.remote_log="C:\Windows\Temp\Xdebug\remote.log"
添加到 php.ini 并检查显示的日志:
I: Remote address found, connecting to ::1:9000.
E: Time-out connecting to client. :-(
搜索此错误会导致@ Axel对此SO question的回答,并在此基础上将 php.ini 中的xdebug.remote_connect_back=1
更改为xdebug.remote_connect_back=0
断点开始工作,上下文,监视和堆栈标签开始显示到达它们的相关数据。