2017-09-06 94 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 

,並重新運行該給我的段錯誤的腳本,我順利地拿到了與文件名和行號遞歸誤差來解決它。