GDB: değişken eşit değerde kırılır


91

Bir değişken ayarladığım bir değere eşit olduğunda GDB'nin bir kırılma noktası belirlemesini seviyorum, bu örneği denedim:

GDB'den çıktı:

Gördüğünüz gibi GDB herhangi bir kırılma noktası yapmadı, bu GDB ile mümkün mü?

Yanıtlar:


127

Bir kesme noktasının içine yerleştirilmiş bir izleme noktasına ek olarak, 'dosya adı: satır_numarası' üzerinde tek bir kesme noktası ayarlayabilir ve bir koşul kullanabilirsiniz. Bazen daha kolay buluyorum.

Benim gibi satır numaralarını değiştirmekten yorulursanız, bir etiket ekleyebilir ve ardından etiket üzerinde şu şekilde kesme noktası belirleyebilirsiniz:


30

Bunun için bir izleme noktası kullanabilirsiniz (kod yerine verilerde bir kesme noktası).

Kullanarak başlayabilirsiniz watch i.
Ardından bunun için bir koşul belirleyincondition <breakpoint num> i == 5

Kesme noktası numarasını kullanarak alabilirsiniz info watch


3
(gdb) watch i No symbol "i" in current context.
SIFE

2
Kodda var olan bir yerde olmalısınız i. Deneyin break main, run, c, sardından Yanıta komutları (adım emin beyanı geçmiş olsun yapmak) ve. Programınızı -gbayrakla derlediğinizden emin olun . (yani hata ayıklama bilgileriyle)
imreal

Yürütme başlamadan önce, ana yürütülebilir dosyanıza bağlanan diğer derleme birimleri / dosyaları henüz yüklenmemiş olabilir. A şık bir seçenek daha sonra kullanıma etmektir start <args>gibidir, tb main, run <args>. Bu, programı başlatarak mola / izleme noktalarını daha kolay ayarlamanıza olanak tanır.
JWCS

9

İlk olarak, kodunuzu uygun bayraklarla derlemeniz ve koda hata ayıklamayı etkinleştirmeniz gerekir.

sonra en sevdiğiniz hata ayıklayıcınızla kodunuzu çalıştırın

bana kodu göster.

5. satırda ara ve i == 5 olup olmadığına bakar.

kesme noktalarını kontrol etme

programı çalıştırmak


4

Donanım ve yazılım izleme noktaları vardır. Okumak ve bir değişken yazmak içindir. Bir eğiticiye başvurmanız gerekir:

http://www.unknownroad.com/rtfm/gdbtut/gdbwatch.html

Bir izleme noktası ayarlamak için, önce kodu ortamda i varyansının bulunduğu bir yere kırmanız ve izleme noktasını ayarlamanız gerekir.

watchkomut yazma, rwatchokuma ve awatchokuma / yazma için bir izleme noktası ayarlamak için kullanılır .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.