Tutulmada (ve diğer bazı IDE'ler de), belirli bir isabet sayısı sonrasında kesme noktasını açma seçeneği vardır. Python'un pdb
'da, kesme noktaları için bir isabet sayısı var ve condition
komutu var. Onları nasıl bağlarım?python: pdb'de sadece n isabetlerinden sonra bir kesme noktası etkinleştirmek mümkün mü?
14
A
cevap
10
Yanıt bulundu.
b 9
Çıktı: Breakpoint 2 at ...
ignore 1 1000
Çıktı: Will ignore next 1000 crossings of breakpoint 1.
c
Bu Diyelim ki 1000 vuruşun ardından hat 9'da kesme noktasında kırmak istiyorum diyelim
ignore
adında bir komut var, aslında oldukça kolaydır
13
Koşullu Breakpoints 2 şekilde ayarlanabilir - İLK
: Ayrıca, mevcut bir uygulanabilir koşul: kesme noktası break
python -m pdb pdb_break.py
> .../pdb_break.py(7)<module>()
-> def calc(i, n):
(Pdb) break 9, j>0
Breakpoint 1 at .../pdb_break.py:9
(Pdb) break
Num Type Disp Enb Where
1 breakpoint keep yes at .../pdb_break.py:9
stop only if j>0
(Pdb) continue
i = 0
j = 0
i = 1
> .../pdb_break.py(9)calc()
-> print 'j =', j
(Pdb)
İKİNCİ kullanılarak ayarlandığında koşulunu belirtmek condition
komutunu kullanarak kesme noktası. Argümanlar, kesme noktası kimliğidir ve ifade edilir.
$ python -m pdb pdb_break.py
> .../pdb_break.py(7)<module>()
-> def calc(i, n):
(Pdb) break 9
Breakpoint 1 at .../pdb_break.py:9
(Pdb) break
Num Type Disp Enb Where
1 breakpoint keep yes at .../pdb_break.py:9
(Pdb) condition 1 j>0
(Pdb) break
Num Type Disp Enb Where
1 breakpoint keep yes at .../pdb_break.py:9
stop only if j>0
(Pdb)
GÜNCELLEME
: Benimport pdb; pdb.set_trace()
for i in range(100):
print i
ayıklama terminalinde basit bir kod yazdım -
$ python 1.py
> /code/python/1.py(3)<module>()
-> for i in range(100):
(Pdb) l
1
2 import pdb; pdb.set_trace()
3 -> for i in range(100):
4 print i
[EOF]
(Pdb) break 4, i==3
Breakpoint 1 at /code/python/1.py:4
(Pdb) break
Num Type Disp Enb Where
1 breakpoint keep yes at /code/python/1.py:4
stop only if i==3
(Pdb) c
0
1
2
> /Users/srikar/code/python/1.py(4)<module>()
-> print i
(Pdb) p i
3
İlgili konular
- 1. Anonim işlevlerde kesme noktası ayarlamak mümkün mü?
- 2. kesme noktası
- 3. Eclipse Kesme noktası yüklenemedi
- 4. Kaynak kodum bulunmayan bir sınıfa kesme noktaları eklemek mümkün mü?
- 5. Java'da "atomik" kesme kontrolü mümkün mü?
- 6. kesme noktası mı?
- 7. GDB'de bir kesme noktası ayarlama
- 8. Birim testinde bekledikten sonra bir kesme noktası nasıl kullanılır?
- 9. Hizmette kesme noktası çalışmıyor
- 10. Getst, docstrings'i etkinleştirmek için javascript işlevinin kendisinde. Mümkün mü?
- 11. Sadece bir sonraki işlemi 'süpürmek' mümkün mü?
- 12. Kesme noktası olmadan gdb'yi duraklat
- 13. Ayar kesme noktası etkisi yoktur
- 14. GDB'de her satırda kesme noktası belirleme
- 15. Kesme noktası vurulduğunda yürütme kodu?
- 16. Firebug programlı kesme noktası mı?
- 17. Bir uzunluk N dizisi 1,2,3 ... N^2 değerlerini içerebilir. O (n) saatinde sıralamak mümkün mü?
- 18. Tek/bir satır lambda Eclipse kesme noktası?
- 19. For döngüsünde bir kesme noktası ayarlamak,
- 20. Özel onDraw() yöntemi bir kesme noktası koyuyorum
- 21. GoogleTest: Bir kesme noktası nasıl ayarlanır?
- 22. UICollectionViewFlowLayoutBreakForInvalidSizes öğesinde sembolik bir kesme noktası oluştur
- 23. Hata ayıklama ve kesme noktası isabetlerini sayma
- 24. ObjC'den bir Python modülü çağırmak mümkün mü?
- 25. lldb'deki sonraki n kesme noktalarını atla
- 26. H2 etiketlerinden sonra linebreak önlemek mümkün mü?
- 27. `durumu 'sadece değiştirilmiş dosyaların durumu mümkün mü?
- 28. mümkün mü?
- 29. Sadece gerekli dll'yi eklemek mümkün mü?
- 30. sadece 0s n 1s
burada, j' yerine, bu kesme noktası için isabet sayısını tutan bir değişken var mı? – zenpoy
'j' geçerli döngü yineleme. "bu kırılma noktası için isabet sayısı" ne demek istiyorsun? –
Teşekkürler, cevabı buldum .. – zenpoy