2011-07-01 9 views
35

Programım bir segmentasyon hatası sorununa sahip, ancak nadiren hata veriyor (20 kez veya daha fazla bir kez) ve GDB'de hata ayıklamak için, bölütleme hatası oluşana kadar programı yeniden çalıştırmam gerekiyor (yarım günlük bir çalışma sırasında sadece) :(başarısız bir kez. Yani sorular olduğunuBir segmentasyon hatası oluşana kadar bir programı gdb ile nasıl yeniden çalıştırabilirim?

, bazı segfault kadar program yeniden çalıştırmanız GDB anlatmak için herhangi bir yolu var mı?

cevap

49

run komutunu tetikler programın çıkışında bir kesme noktası koyun, ve set pagination off unutma .. Ayarlar komutları ile ilgili bilgiler gdb belgelerinin Breakpoint Command Lists bölümünde mevcuttur Kısa:

set pagination off 
break exit 
commands 
run 
end 

commands hattından sonra, sonraki iki satırın kesme noktasına ulaşıldığında yürütme komutu olarak girildiğini göreceksiniz.

+11

Çıkış işlevinde bir kesme noktası koyun, "çıkış komutlarını sonlandır" komutunu sonlandırın :) – MKo

+0

Bu durum benim durumumda çalışıyor, ancak 5 kez çalışıyor ve devam etmek için geri dönmek zorundayım ve 5 kez daha çalıştırıyorum. Bu her zamanki gibi mi? –

+3

yanıt gdb'de "sayfa numaralandırma kapalı" olarak görünüyor – fijal

İlgili konular