2013-04-11 26 views
6

Gdb'de yazdırma komutunun çıktısını almanın bir yolu var mı? Benim durumumda, gdb kullanarak bir çekirdek dökümünde hata ayıklama yapıyorum ve hata ayıklama yaptığım nesne çok sayıda öğe içeriyor. Ben bağlıyor zor bir eşleşme için bakmaya yani bulma ediyorum:gdb yazdırma hakkında bilgi alma

(gdb) print *this | grep <attribute> 

teşekkür ederiz.

+1

Sonra bu düzeltme ekini istiyorsunuz: http://sourceware.org/ml/gdb-patches/2011-07/msg00572.html – cnicutar

+1

Bu sözdizimi ile ilgili temel sorun, | karakter geçerli bir operatördür. – matt

cevap

5

(gdb) print * this | grep

bunu başarmak için "standart" bir yol emacs yılında Meta-X gdb kullanmaktır.

Alternatif: cnicutar emin yukarıda kıyasla cazip görünüyor bahsettiği

(gdb) set logging on 
(gdb) print *this 
(gdb) set logging off 
(gdb) shell grep attribute gdb.txt 

yama. Ben (veya eşdeğeri) hiç sunulmamış olmasının sebebinin çoğu GDB idaresinin emacs kullanması olduğunu tahmin ediyorum ve bu yüzden ilk etapta bu sorunla karşılaşmadım.

+0

Teşekkürler @Employed Rusça –

+0

@Employed Russian reason: http://sourceware.org/ml/gdb-patches/2011-07/msg00284.html – matt

+0

Neden bahsediyorsunuz? Emacs kullanıyorum ve sadece print $ rax denedim | grep 41 ', "No symbol" grep "» yazıyor. Eğer emacs'ın aramasına izin veriyorsa, kesinlikle yerli grep değildir. Grep bir komut dosyasında kullanılabilir, yani belirli bir işlevde durmamak için bir gdb izleme noktası oluşturmak için * (bunu başarmaya çalışıyorum) *. –

İlgili konular