php - 根据外部请求在 Netbeans 中启动 XDebug

我正在使用 Netbeans 6.7 和 XDebug 在我的机器上调试 PHP 站点,从 Netbeans 中启动请求(Project->Debug)。这很好用,而且非常有用。

我的问题是:是否可以将调试器附加到任何传入的请求,而不仅仅是我从 Netbeans 中启动的请求?

即,不要单击“调试”,而是将 Netbeans 置于启动调试器并附加到下一个传入请求的模式。

我觉得这可能是一个愚蠢的问题,但如果可能的话,那就太好了。

编辑:更多信息

我的系统(Ubuntu 9.04)设置如下:

/etc/php5/conf.d/xdebug.ini的内容

zend_extension=/usr/lib/php5/20060613/xdebug.so

xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug

Netbeans PHP 调试选项为默认值:

Debugger Port: 9000
Session ID: netbeans-xdebug
Stop at the First Line: ticked

我的 /etc/hosts 文件将 www.mywebsite.com 重定向到 localhost

如果我单击 Netbeans 中的调试按钮,Firefox 会启动,地址为 http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug,并且调试器按预期工作。

但如果我只是浏览到 http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug,这不会启动 Netbeans 中的调试器。

我也尝试过设置 xdebug.remote_host=www.mywebsite.com ,但这没什么区别。

另外,我启用了 xdebug.remote_log,它显示了我从 netbeans 中启动时的信息,但没有显示外部请求。所以我认为 XDebug 根本看不到外部请求。

最佳答案

转到项目属性> 运行配置> 高级> 调试网址并检查不要打开网络浏览器 (*)。 调试器代理下设置主机。保存这些设置。在项目窗口中,在您的项目上:鼠标右键单击> 调试(这将开始监听调试连接)。没有启动浏览器。在浏览器中输入 http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug。它应该在netbeans中中断。至少这就是这里发生的事情:)

(*) 你可能还需要设置一个路径映射 - 对我来说,它不需要

https://stackoverflow.com/questions/1531391/

相关文章:

linux - 永久反转补丁文件

php - 脚本 "/home/...../public_html/index.php"的 UID

python - 在 Python 上模拟鼠标点击

c++ - 我在哪里放置第三方库来设置 C++ Linux 开发环境?

linux - 如何从 X session 之外(例如从控制台或 SSH)运行 X 程序

linux - Bash 将 awk 的输出捕获到数组中

android - 如何构建在 Android 上运行的 native (命令行)可执行文件?

linux - Linux AMD64 中如何使用 fs/gs 寄存器?

c - glibconfig.h 没有这样的文件或目录

linux - 在像 "f () {}"这样的 bash shell 脚本函数定义中使用的括号是什么