如何解决出色的文本和远程PHP调试断点
我有一个运行带有PHP和Xdebug的Apache的FreeBSD服务器,以及一个运行Sublime 3.2.2的Mac OS客户端,用于开发和调试。使用SFTP在服务器和客户端之间交换代码文件。
我可以通过在Xdebug.sublime-settings中设置"break_on_start": true
来逐步执行代码。堆栈跟踪,上下文,断点,所有内容都在这里:调试原则上起作用。
但是,在断点处停止执行不起作用。此外,调试期间不会显示代码中的当前位置(代码行左侧的绿色或黄色小箭头)。这将调试限制为从头开始逐步执行代码并从堆栈中读取当前代码位置。
我怀疑PHP代码必须在上载之前先添加调试信息(即断点),但是我找不到解决方法。
解决方法
Wesley使我走上了正确的道路,问题是本地文件和远程文件之间的映射。我终于可以在以下项目设置下使用它了:
{
"folders":
[
{
"path": "."
},],"settings":
{
"xdebug":
{
"url": "http://<myserver>/<serverpath>/<mytestfile>.php","path_mapping": {
"<server path to php files>" : "<local path to php files>",}
}
}
}
该问题可以在服务器的xdebug.log文件中看到,该文件报告的断点引用了客户端的文件系统而不是服务器的文件系统:
[49644] <- breakpoint_set -i 11 -n 8 -f file%3A///Users/<foo>/Documents/Development/foo/xdebugtest.php -t line
在修复了path_mapping断点定义后,可以报告以下内容:
[49638] <- breakpoint_set -i 8 -n 5 -f file%3A///usr/local/www/<foo>/xdebugtest.php -t line
请注意,同步本地文件和远程文件(此处为SFTP插件)的方式与该问题无关。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。