我知道有无数关于这个主题的问题,但无论我尝试过什么,我都没有运气。我遇到的问题是关于使用 NetBeans 和 XDebug 时的断点(在 Windows 8.1 上,如果这会影响任何东西)。
问题是没有断点起作用。默认情况下,当使用 NetBeans 进行调试时,它会在第一行停止,这确实会成功发生。因此,NetBeans 以某种方式连接到 XDebug。但是,任何其他文件中的任何其他断点都不起作用。
我已经在 php.ini 文件中尝试了各种不同的设置,但到目前为止还没有成功。我也试过打开 XDebug 日志文件,这样也许我可以分析发生了什么,但这也没有用。最后,我尝试使用 xdebug_break()
设置断点,但也没有用。
php.ini 中的 XDebug 设置
;[XDebug]
; Only Zend OR (!) XDebug
zend_extension="C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="C:\xampp\tmp"
NetBeans 上的项目运行配置
我已经看过以下内容:
- http://articlebin.michaelmilette.com/making-xdebug-work-with-netbeans-on-windows/
- Xdebug ignores breakpoints
- http://wiki.netbeans.org/HowToConfigureXDebug#Tips_from_the_NetBeans_Forums
另请注意,这在 3 天前还有效,但今天没有断点有效。
附加信息
我在 cmd php -v
中运行了以下命令,并显示了以下警告:
警告:模块“xdebug”已在第 0 行以未知方式加载
这是否意味着 xdebug 正在尝试加载两次?如果是这样,我不确定如何解决这个问题
最佳答案
找出问题所在。我知道这个答案会非常具体,但它可能会对将来的某人有所帮助。
因此,在检查代码时,我注意到有人添加了在加载登录页面时清除所有 cookie 的代码。删除 cookie 后,XDebug 无法正常工作。原因是为了让 XDebug 工作,它设置了一个带有 session ID 的 cookie,例如“netbeans-xdebug”,它随网站上的每个请求一起发送。
这是一个非常简单的问题,但花了将近 2 天的时间才弄清楚是怎么回事。我再次知道这是一个非常具体的案例,但也许它可以帮助那里的人。
编码愉快!
关于php - NetBeans + XDebug 断点不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30981848/