Valgrind PHP Bellek Bozulması ayıklama

1 Cevap php

PHP ile bir bellek bozulması sorun gibi görünüyor ne karşılaşmak ediyorum. Ben 5.3 runtime taşıma olduğum bir büyük kod tabanı var. Ben sırasında parçalama arızası almak ve hataları "bozuk zend_mm_heap", ancak bu noktalardan backtraces yararlı değildir. Backtraces her zaman geri gibi değişken atama veya birleştirme gibi çeşitli temel PHP fonksiyonları yol.

Sırasında parçalama arızası / yığın bozulması hataları oluşabilir önce benim en iyi bildiğim için, PHP'nin bellek noktada bozuk oluyor.

Ben bugs.php.net / böcek-alma-valgrind-log.php adresindeki yönergeleri takip ettik ve oldukça büyük bir valgrind günlüğünü yarattı. Bu "Koşullu atlama veya hareket uninitialised değere bağlıdır" gibi birçok hataları ile dolu. O valgrind günlüğünde çok fazla bilgi var, çünkü ben gerçek bir kusur ve ne normal bir davranıştır ne olduğundan emin değilim.

İşte valgrind çıkışının bir kısmı var: http://pastie.org/private/exngtften3jeppqyjn4hw

1 Cevap

Deftere tüm hataları başlatılmamış değerlerinin kullanımları vardır. Başlatılmamış kullanılan biter değerin kökenini göstermek için valgrind seçeneği --track-origins=yes (valgrind 3.4.0 eklenmiştir) kullanın. Bu yavaş çalışmasına ve daha fazla bellek kullanır, ancak başlatılmamış değerlerin kullanımlar için çok daha yararlı bilgiler göstermek.