2017-09-06 90 views
0

我最近在Laravel 5.5中开始了一个小项目。我将我的Homestead箱子更新为最新版本。Laravel 5.5中的段错误

在写一个测试,我碰到一个段错误来,如果我拼写错误的断言方法,我创建了可以在https://github.com/laravel/framework/issues/20925

中发现的问题已经现在已经关闭,作为理所当然的GitHub库的问题,这是我的错误(asertPushedOn()而不是assertPushedOn())。

但是我最近遇到了另一个段错误,它又是我的错误(当尝试重载时错误地命名关系),但问题是,这从来没有发生在5.5之前。现在,看起来当我搞砸了一些东西的时候,我随机得到了段错误。我找不到任何事情来帮助在日志中对它们进行调试(Laravel日志文件或Nginx的错误日志。

唯一的错误消息我得到的是Segmentation fault (core dumped)不告诉我任何事情。

在问题报告中,提到Xdebug的转储出错误我有一个谷歌为laravel homestead xdebug,但只能找到资源phpstorm(我是一个崇高的用户)

TL; DR:。

1)在Laravel 5.5更新的宅基地箱,如果我搞砸了某个地方,我现在正在得到php segfaults。这是5.5 /家园的改变吗?

2)如何启用xdebug(这实际上有助于调试段错误)? 3)如果xdebug不是答案,我该如何停止获取,或者从segfaults获得更多的默认调试信息?

正如我在创建的问题中提到的,我对segfaults不太了解。

如果您需要任何进一步的信息,请让我知道

编辑

我设法让与Xdebug的:

sudo phpenmod xdebug 
sudo service nginx restart 
php -m 

但我一直无法重现段错误(启用和不启用xdebug),这使段错误对我来说更加困惑。

+0

你可能有一个递归函数,它耗尽你所有的内存。所以你用完了内存,它给了你那个错误。你能分享你的代码吗? –

+0

我假设递归,但我无法找到任何。因为我认为这可能部分归因于框架,所以不可能共享代码 - 但只能通过我的错误来实现。只是在过去,我确信大型递归已经被xdebug或Homestead中的其他进程所捕获,并且出错(这给了我至少一些关于从何处开始调试的信息)。 –

回答

1

因此,虽然我无法再现原始段错误,但在xdebug未启用时确实发生了另一段错误。

当我启用了XDebug下列要求:

sudo phpenmod xdebug 
sudo service nginx restart 

,并重新运行该给我的段错误的脚本,我顺利地拿到了与文件名和行号递归误差来解决它。