1

PHP でメモリ破損と思われる問題が発生しています。5.3 ランタイムに移植する大規模なコード ベースがあります。セグメンテーション違反と「zend_mm_heap が壊れています」というエラーが表示されますが、これらのポイントからのバックトレースは役に立ちません。バックトレースは常に、変数の代入や連結など、さまざまなコア PHP 関数に戻ります。

私の知る限りでは、セグメンテーション違反/ヒープ破損エラーが発生する前のある時点で、PHP のメモリが破損しています。

bugs.php.net/bugs-getting-valgrind-log.php の指示に従いましたが、非常に大きな valgrind ログが生成されました。「条件付きのジャンプまたは移動は、初期化されていない値に依存します」などの多くのエラーでいっぱいです。その valgrind ログには非常に多くの情報があるため、何が本当の欠陥で何が正常な動作なのかわかりません。

valgrind の出力の一部を次に示します: http://pastie.org/private/exngtften3jeppqyjn4hw

4

1 に答える 1

1

あなたが投稿したすべてのエラーは、初期化されていない値の使用です。valgrind オプション--track-origins=yes(valgrind 3.4.0 で追加) を使用して、最終的に初期化されずに使用される値の起源を示します。実行速度が遅くなり、より多くのメモリが使用されますが、初期化されていない値の使用に関するより有用な情報を表示できます。

于 2010-02-17T15:24:57.080 に答える