【问题标题】:NetBeans + XDebug Breakpoints not workingNetBeans + XDebug 断点不起作用
【发布时间】:2015-09-08 00:23:53
【问题描述】:

我知道关于这个主题有无数的问题,但是无论我尝试了什么,我都没有运气。我遇到的问题是关于使用 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 上的项目运行配置

我已经看过以下内容:

另请注意,这在 3 天前有效,但今天没有断点有效。

其他信息

我在 cmd php -v 中运行了以下命令,并显示以下警告:

Warning: Module 'xdebug' already loaded in Unknown on line 0

这是否意味着 xdebug 正在尝试加载两次?如果是这样,我不确定如何解决这个问题

【问题讨论】:

    标签: php debugging netbeans xdebug


    【解决方案1】:

    找出问题所在。我知道这个答案会非常具体,但是它可能会在将来对某人有所帮助。

    因此,在检查代码时,我注意到有人添加了在登录页面加载时清除所有 cookie 的代码。一旦 cookie 被删除,XDebug 就不起作用了。原因是为了让 XDebug 工作,它会设置一个带有会话 id 的 cookie,例如网站上的每个请求都会发送的“netbeans-xdebug”。

    这是一个非常简单的问题,但花了将近 2 天的时间才弄清楚发生了什么。我再次知道这是一个非常具体的案例,但也许它可能会对那里的人有所帮助。

    编码愉快!

    【讨论】:

    • 谢谢!!如果不是这篇文章,我永远不会猜到问题可能出在 cookie 上。通过切换到使用 GET arg ?XDEBUG_START_SESSION=ide_key,而不是 XDEBUG_SESSION=ide_key cookie,我能够让我的断点工作!
    • @CoreDumpError 不客气!!很高兴这对某人有所帮助:D
    猜你喜欢
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    相关资源
    最近更新 更多