PHPStorm 和 Xdebug 断点调试

4
我使用phpstorm开发网站,但由于某些原因断点无法同步。这是我的情况:
我有一个文件夹,里面存放着我所有的项目。在同一台电脑上,我也运行了xampp作为测试服务器。在phpstorm中,我将xampp测试服务器配置为已挂载的文件夹服务器。但是当我在原始源文件中应用断点时,这些断点并没有与xampp的htdocs文件夹中的文件同步。我该如何解决这个问题?
4个回答

8

我已经做过了,但你猜怎么着:我刚刚重新检查了我的设置,发现我不小心使用了错误的服务器... 无论如何,谢谢你的回答! - Tiddo
那些映射设置往往会不时地消失(我又遇到了这个问题),所以对于那些通过谷歌搜索到这个问题的人:请检查映射! - Evgeniy Chekan

2

当我设置断点调试时,遇到了类似的问题。我的web服务器使用虚拟驱动器来简化httdocs路径。所以我的错误在于,我没有将虚拟路径设置为文件-设置-目录中项目的内容根目录,而是设置了本地文件夹的实际路径。


2
我发现在phpstorm 4.x / xdebug 2.2.3 / php 5.4.3中有类似的问题。我可以在代码中设置断点,但是当逐行执行代码时,我发现调试器与实际代码不同步,这意味着某些断点被跳过了。
经过多次试验,我最终发现问题是由于我的变量中有换行符引起的。
例如:
    $q = "SELECT * 
    FROM table
    WHERE
    product_id = 'whatever'
    AND product_status != 'inactive'";

当代码执行到这条语句时,会导致调试器跳出4-5行。

将其更改为:

$q = "SELECT * FROM table WHERE product_id = 'whatever' AND product_status != 'inactive'";

问题已经解决!

显然,这会影响任何有换行符的变量声明,而不仅仅是用于SQL查询的声明。这有点麻烦,因为我之所以这样做是为了可读性,但我希望这能为其他遇到同样问题的人节省一些时间。


0
也许这对你不起作用,但我只是让我的MAMP主文件夹指向项目的根文件夹,所以不需要同步/挂载。

1
我不想这样做:在我的项目文件夹中,我有比我想要的更多的文件(例如Photoshop文件等),而且我从同一XAMPP服务器上的不同文件夹中工作。如果我想要改变它,我将不得不重新组织我的完整文件夹结构在我的电脑上。 - Tiddo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接