使用Xdebug调试PHP在__debuginfo()

时间:2015-11-01 19:33:51

标签: php debugging cakephp xdebug

我正在尝试使用CakePHP让Xdebug在PhpStorm中工作。调试器按预期停在我的断点处,但是当我单步执行代码时,它最终会崩溃。 (注意:只有在我放置断点并逐步执行代码时才会发生崩溃。)

我正在开发一台开发机器:

  • Ubuntu 15.04
  • PhpStorm 9.0.2
  • CakePHP 3.0
  • Xdebug 2.3.3
  • PHP 5.6.4

根据我设置断点的位置,崩溃发生在不同的地方,但我注意到它似乎总是追溯到__debuginfo()中的代码。我读过Xdebug和__debuginfo()的一些问题,但我知道它们已在Xdebug 2.3.3中修复。

这是一个例子:我仅使用CakePHP书签样本创建了一个项目。我在〜/ bookmarker / webroot / index.php中放置了一个断点,在调试器点击我的断点后,我逐步完成了index.php中的代码。

这是错误消息:

  

错误:无法访问受保护的属性Cake \ Event \ EventManager :: $ _ listeners   文件/ home / mriley / Webdev的/书签用/供应商/ CakePHP的/ CakePHP的/ src目录/事件/ EventManager.php   行:454

这是EventManager中的方法:

449:    public function __debugInfo()
450:    {
451:        $properties = get_object_vars($this);
452:        $properties['_generalManager'] = '(object) EventManager';
453:        $properties['_listeners'] = [];
454:        foreach ($this->_listeners as $key => $listeners) {
455:            $properties['_listeners'][$key] = count($listeners) . ' listener(s)';
456:        }
457:        return $properties;
458:    }

我正在做错的任何想法?

0 个答案:

没有答案