2017-09-06 4 views
0

に私は最近、Laravel 5.5で少しプロジェクトを開始しました。 Homesteadボックスを最新バージョンに更新しました。セグメンテーション違反はLaravel 5.5

テストを書いている間、私は間違ってアサーションメソッドを綴った場合、私はセグメンテーションフォルトに出くわした、と私は問題が当然のように、今閉じられたhttps://github.com/laravel/framework/issues/20925

で見つけることができますGitHubのレポ上の問題を作成しましたそれは私の間違いでした(assertPushedOn()の代わりにasertPushedOn())。

私は最近、別のセグメンテーションフォルトに遭遇してきたしかし、再び、それは(eagerloadしようとするときに、誤って関係という名前の)私の誤りでしたが、問題は、この前5.5に起こったことはありません、です。今、私は何かを台無しにすると、私はランダムにsegfaultsを取得しています。私は(ログにそれらをデバッグするLaravelのログファイルまたはnginxのエラーログ助けるために何かを見つける傾ける。私が手

のみエラーメッセージが私に何かを教えてくれないSegmentation fault (core dumped)です。問題レポートに

、それが言及しましたxdebugのは、エラーが出てダンプ私はlaravel homestead xdebugのためのGoogleに持っていただけ(私は崇高なユーザーだ)phpstormのためのリソースを見つけることができる

TL; DR:。。

1)Laravel 5.5に更新され家産ボックスで、私はどこかでうんざりするなら、今、PHPのsegfaultsを得ています。これは5.5 /ホームステッドの変更ですか?

2)どのように私は(これは実際にデバッグセグメンテーションフォルトを助ける)xdebugのを有効にすることができますか? xdebugのが答えではない場合

3)、どのように私はなって停止、またはセグメンテーションフォールトから複数のデフォルトのデバッグ情報を得ることができますか?私が作成した問題で述べたように

、私はセグメンテーション違反についてはあまり知りません。

何か、さらに情報が必要な場合、私は

EDIT

を教えてください私はxdebugのを可能にするための管理:

sudo phpenmod xdebug 
sudo service nginx restart 
php -m 

しかし、私はセグメンテーションフォルトを再現することはできませんされました(xdebugを有効または無効にして)有効にすると、segfaultsがもっと混乱します。私は、元のセグメンテーションフォルトを再現することができませんでしたしながら、

+0

あなたはおそらくすべてのメモリを排除する再帰関数を持っています。あなたは記憶がなくなり、それはあなたにエラーを与えます。あなたのコードを共有していただけますか? –

+0

私は再帰を仮定しますが、私は何も見つけることができません。コードを共有することは実際には可能ではありません。なぜなら、それは部分的にフレームワークに起因するかもしれないと思うからです。しかし、私のエラーによってのみ実現します。過去には、xdebugやHomesteadの他のプロセスが大規模な再帰を捕まえてエラーが発生していることがわかっています(デバッグを開始する場所についての情報は少なくとも少ししかありませんでした)。 –

答えて

1

だから、もう一つはxdebugのが有効になっていなかった間に発生しました。

私は次のようにXdebugを有効

sudo phpenmod xdebug 
sudo service nginx restart 

と私にセグメンテーションフォルトを与えたスクリプトをreran、私は成功し、それを解決するために、ファイル名と行番号を持つ再帰エラーが発生しました。

関連する問題