Xdebug与Sublime Text 2

时间:2012-12-01 19:43:55

标签: php xdebug sublimetext2 breakpoints

我正在尝试使用Sublime Text 2设置Xdebug以在我的本地计算机上调试PHP,但我无处可去。我用PHP 5.4运行MAMP。我在php.ini的末尾输入了这个:

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_autostart=1

Xdebug.so扩展附带了MAMP,我已经验证它位于php.ini文件中指定的位置。我可以在PHP信息中看到Xdebug信息。

在Sublime Text 2中,我安装了this包,并将项目中的设置更改为:

{
    "folders":
    [
        {
            "path": "/Applications/MAMP/htdocs"
        }
    ],

    "settings": {
        "xdebug": { "url": "http://localhost" }
    }
}

我可以按SHIFT和F8调出Sublime Text 2中插件的菜单,并可以添加或删除断点(代码行左侧会出现一个灰点)。当我点击“开始调试”时,它会打开一个浏览器,其中“?XDEBUG_SESSION_START = sublime.xdebug”字符串会附加到网址上。但是我的断点没有做任何事情。

我尝试将xdebug_break();添加到我的代码中以查看是否会停止该程序,但事实并非如此。浏览器和IDE似乎根本没有连接......

有什么想法吗?

2 个答案:

答案 0 :(得分:11)

首先,Kindari的xdebug插件并不是你会感到高兴的东西。他把这个插件作为一个试验,在编写时学习了崇高的api,所以它充满了问题,硬编码的变量和东西。我最终放弃了它并卸载了该插件,它只是没用(但它有效)。恕我直言的最大缺陷之一是无法显示超过1级深度的数组变量。 他在github上发布他几个月前将要从头开始重写它,从那以后它似乎已经放弃了,但我仍在拼命等待新版本问世,我甚至考虑学习python并自己编写。 / p>

好吧,如果你不想尝试它,首先要确保Xdebug工作,通过尝试与其他一些Xdebug客户端。 如果Xdebug在其他地方工作,请确保安装了python2.6,因为它不适用于2.7。如果您运行的是ubuntu 12.04,python2.6不在存储库中,那么从插件自述文件中可以找到Ubuntu 12.04的解决方法:

  1. 下载[http://packages.ubuntu.com/lucid/python2.6][python 2.6]。
  2. 提取它:

    dpkg-deb -x python2.6_2.6.5-1ubuntu6_i386.deb python2.6
    
  3. 将解压缩的usr / lib / python2.6文件夹复制到{Sublime Text directory} / lib(= / usr / lib / sublime-text-2 / lib /)

  4. 记住两件事:首先,有一个文件/usr/lib/sublime-text-2/lib/python26.zip,所以不要删除这个文件。第二,在你提取的.deb中,其中有usr / lib / python2.6,这就是你要复制的内容,而不是整个python2.6目录。所以,如果你不在那个解压缩的.deb之外,

    cp -r python2.6/usr/lib/python2.6 /usr/lib/sublime-text-2/lib
    

    可能会完成这项工作。我在这里不太确定,如果你应该复制那个python2.6 / usr / lib / python2.6文件夹或只是它的内容,我确实复制了它们并没有搞砸任何东西。

答案 1 :(得分:0)

你是否安装了python版本2x?尝试安装python,或设置xdebug.remote_enable = 1