调试PHP - 选择Xdebug会话的请求

时间:2010-10-07 23:35:59

标签: php debugging xdebug

我使用NetBeans和Xdebug处理PHP代码。我使用Xdebug进行逐步调试等。

我能够调试默认请求的流,但不能调试特定的_get / _post或Ajax请求生成的流。

任何人都知道如何做到这一点?

当我运行调试器时,浏览器中的选项卡会自动打开,并显示以下URL:  http://localhost/?XDEBUG_SESSION_START=netbeans-xdebug

感谢。 吉迪

2 个答案:

答案 0 :(得分:1)

好的,

就是这样:

在项目标签(我的配置中屏幕的左上角),右键单击项目名称,然后是属性=>运行配置

你必须填写3个表格: 1. project url - web上项目的基本URL,通常为http://localhost 2.索引文件 - 使用浏览按钮并转到index.php的本地副本或为您提供此角色的任何文件。此表单应包含本地文件系统中此文件的路径,而不是Web上的路径 3. arguments - 您希望通过URL

访问脚本的任何参数

这样您就可以选择自定义URL进行调试

可能的问题:在此过程中,您可能会丢失Web地址与系统中相应文件之间的同步。如果你遇到这种性质的问题,谷歌“在PHP调试器中的路径映射”,并采取第一个结果(系统不允许我直接链接)。 然而,这对我不起作用。我使用服务器配置通过重定向URL来解决这个问题

吉迪

P.S。 以上所有内容都没有解释如何在调试时将POST变量传递给脚本(我确实不知道如何操作)

答案 1 :(得分:-1)

也许您尝试按上述方式启动调试会话。作为调试目标,您可以在工作流程中选择最接近POST请求的页面。然后,您与Web服务进行交互,始终在netbeans中运行调试器。通过调试会话保持的交互,您可以填写表单等并发送POST请求。然后像往常一样切换到netbeans并进行调试。

也许您必须在调试选项中启用“Break at first line”,或者在调度请求的php代码中设置断点,以确保调度器在调度POST请求时暂停。然后,您最终将不得不在每次加载页面时调试调试器。

希望有所帮助