0

私は一般的にMagentoのトラブルシューティングを扱っており、トレースが適切な情報を提供していることを発見しましたが、非常に短い傾向があります。

Magentoの内部はわかりませんが、PHPのdebug_backtrace機能に関連していると思いますか?

この場合、再現可能なエラーの出力トレースのサイズを変更するにはどうすればよいですか?変更する高レベルの設定(使用などini_set)はありますか、それともコアコードの編集が必要ですか?

4

2 に答える 2

1

2番目の引数について質問している場合、残念ながら、これを行う簡単な方法はありません。debug_backtrace関数はapp/code/core/Mage/Core/functions.php::mageDebugBacktrace引数なしで呼び出されます。したがって、それを変更する唯一の方法は、ファイル全体をにコピーし、app/code/local/Mage/Core/functions.php必要に応じて変更することです。ただし、この方法にはいくつかの悪影響があり、使用することはお勧めしません。

于 2012-12-02T18:56:12.443 に答える
1

ショートバージョン:xDebugのようなものを使用することはできず、非常に遅くなります。

ログに記録された例外には、コードの完全な「トレース」は含まれていません。箱から出して、PHPはこの情報を追跡しません。debug_backtrace返される出力はコールスタックです。呼び出しスタックは、現在の深さに到達するためにかかった関数/メソッド呼び出しを返します。例えば

function a(){
    b();
    c();
}

function c()
{
    d();
}

function d()
{
    //DEBUG HERE
}

//start program
a();

関数でコールスタックを取得した場合、次の//DEBUG HEREようになります。

a();
c();
d();

この関数b()はすでに呼び出されているため、含まれていません。 これは、PHPが返すことができる唯一の情報です。完全なバックトレースには非常に多くの情報が含まれ、パフォーマンスは停止します。

完全な関数トレースが必要な場合は、xDebugなどの拡張機能をインストールし、そのトレース機能を使用する必要があります。ただし、これはプロダクションストアには適していません。追跡するには、情報が多すぎます。

于 2012-12-02T19:34:26.457 に答える