2010-06-09 10 views

cevap

47

, sen hataya adresi sinyali ortaya çıktığında doldurulur $_siginfo yapısını incelemek ve belirlemek bir NULL işaretçi dereference var.

+0

(gdb) p $ çalışmıyor Yapıda başka neler olduğunu görmek için $ _siginfo'. – nornagon

+0

Make desteklenmez tahmin 'pType _siginfo sh4 – To1ne

+0

kullanın kullanırken bu mimariye :( – To1ne

0

GDB altında programınızı çalıştırın. Segfault oluştuğunda, GDB, programın satır ve bildirimini, değişken ve ilişkili adresiyle birlikte bilgilendirecektir.

Değişkenleri denetlemek için GDB'deki "print" (p) komutunu kullanabilirsiniz. Kilitlenme bir kütüphane çağrısında gerçekleştiyse, söz konusu yığın çerçevesini görmek için "çerçeve" komut dizilerini kullanabilirsiniz. Bu (void *) 0x0 (veya az sayıda) içeriyorsa o zaman

(gdb) p $_siginfo._sifields._sigfault.si_addr 

:

GDB 7 ve üstü ile
+0

Segmentimde, kaynak kodunun olduğu kod bulunmamaktadır. – nornagon

+0

@nornagon: 'bt' komutu, hata oluştuğunda kendi kodunuzda nerede olduğunuzu görmenizi sağlayacak bir backtrace gösterecektir. – caf

+0

Evet, biliyorum, ama hala bir yardım değil - birkaç argümanla kütüphane işlev çağrısıydı ve bu argümanlardan hangisinin segfault'a neden olduğunu bilmiyorum. – nornagon

İlgili konular