2014-07-07 7 views
5

Neyin neden kaynaklandığını anlayamadım, ama hata (uyarı?) Iletisinde "Global yıkım sırasında serbestçe skandal: SV 0x825b790'ı serbest bırakmak için girişimde" herhangi bir sonuç olup olmadığını merak ediyorum. Eğitimsiz bir göze göre, derleyici problemi algılamak için uğraştığından, devam etmemiş ve geri kalan hafızayı yeniden silmemiştir."Kesintisiz skaler serbest girişimi" hataları güvenli bir şekilde yok sayılabilir mi?

Bu sadece programlamamın özensiz olduğunu söylüyor mu? ya da endişelenmem gereken gerçek sorunlar var mı?

Arkaplan: Bu benim kodum değil, sorunu çözmek için zamanım yok, ve programın sonunda doğru olduğuna dikkat etmeliyim.

+0

değil, hiç değil. Bu çok ciddi bir problem. Okumaması veya değiştirilmemesi ya da değiştirilmemesi gereken bellek anlamına gelir. – ikegami

cevap

8

Bir XS modülünde veya Perl'in kendisinde bir hata var. Bu, önceden tahsis edilmiş bir skaler tahsis etmek için bir talep olduğu anlamına geliyor.

Bu, bazı kodların geçerli olduğunu düşündüğü bir işaretçi tuttuğunu gösterir, ancak değil. Bu vb veri bütünlüğü sorunları, çalışma sırasında parçalama arızası neden olabilir kod değiştirerek edilmemelidir belleğe,

yazılı kod neden olabilir Bu program çıkar tespit edildi, ancak sorun olmuş olabilir yaşansın her zaman. Hata yayılana kadar serbest bırakıldıktan sonra sorunlara maruz kalıyorsunuz. Örneğin

,

use Inline C => <<'__EOI__'; 

void buggy(SV* sv) { 
    SvREFCNT_dec(sv); 
} 

__EOI__ 

my $x; 
buggy($x); 
# $x is no longer allocated here, but I could still try to use it. 

Çıktı:

Attempt to free unreferenced scalar: SV 0xc43fc0, Perl interpreter: 0xc22690. 
+0

Hatanın satır içi C kodu olmadan gerçekleşebileceği bir senaryo var mı? –

+1

@ Mr.Llama Sadece perl'de bir hata varsa, bu olabilir, ancak olası değildir. Ve satır içi C kodunu kullanmanın tek yolu değil, XS daha yaygın ve daha az belirgin. – AKHolland

+0

bu benzer senaryo olabilir mi? : http://stackoverflow.com/questions/32611173/git-push-failed-updating-remote-server-info?noredirect=1#comment53073660_32611173 –

İlgili konular