W środowisku Eclipse (i kilku innych IDE) istnieje opcja włączenia punktu przerwania tylko po określonej liczbie trafień. W Pythonie pdb
jest liczba trafień dla punktów przerwania i istnieje polecenie condition
. Jak je połączyć?python: w pdb możliwe jest włączenie punktu przerwania tylko po nliczeniach?
14
A
Odpowiedz
10
znalazłem odpowiedź. Jest to dość proste w rzeczywistości, istnieje polecenie o nazwie ignore
powiedzmy chcesz przerwać na przerwania w linii 9 po 1000 Odsłon:
b 9
wyjściowa: Breakpoint 2 at ...
ignore 1 1000
wyjściowa: Will ignore next 1000 crossings of breakpoint 1.
c
13
warunkowe Wartości graniczne można ustawić na 2 sposoby -
PIERWSZA: określić stan, gdy punkt przerwania jest ustawiony za pomocą 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)
drugie: warunek może być również stosowana do istniejącego punkt przerwania przy użyciu polecenia condition
. Argumentami są identyfikator punktu przerwania i wyrażenie.
$ 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)
UPDATE: pisałem prostszy kod
import pdb; pdb.set_trace()
for i in range(100):
print i
debugowanie na terminalu -
$ 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
Powiązane problemy
- 1. Wykonywanie kodu po trafieniu punktu przerwania?
- 2. Ustawianie punktu przerwania w NSKVODeallocateBreak
- 3. Błąd w stanie punktu przerwania
- 4. Czy jest możliwe włączenie sprawdzania granic tablicy w g ++?
- 5. Jak używać punktu przerwania po oczekiwaniu na test jednostkowy?
- 6. Znaczenie przekreślonego punktu przerwania w Eclipse
- 7. Jak ustawić punkt przerwania GDB tylko przerwać po osiągnięciu punktu określoną liczbę razy?
- 8. W Visual Studio, czy mogę umieścić punkty przerwania w kodzie, dla którego mam tylko symbole debugowania?
- 9. Jak powrócić do punktu przerwania podczas debugowania?
- 10. Nie można wyłączyć punktu przerwania (ducha).
- 11. Ustawianie punktu przerwania w środku wiersza z wieloma instrukcjami
- 12. Python pdb (debugger) disp equivalent?
- 13. Nie można uzyskać punktu przerwania w programie Visual Studio
- 14. Firebug zatrzymuje się nawet tam, gdzie nie ustawiono punktu przerwania.
- 15. Ustawianie punktu przerwania pamięci w programie Visual Studio 2012
- 16. Plik pdb zmarnia po PostSharp
- 17. jak utworzyć akcję logowania punktu przerwania w xcode?
- 18. jak napisać css dla określonego punktu przerwania w kanciastym materiale
- 19. Python/web scrape/aspx - czy jest to możliwe z ludzkiego punktu widzenia, gdy nie ma formularzy?
- 20. ustawianie punktu przerwania w konkretnym wierszu wewnątrz funkcji z 'gdb'
- 21. Uruchom Python Debugger (pdb) w Sublime Text 3
- 22. Chcę debugować (ustawić punkt przerwania) System.Web.Mvc.DefaultControllerFactory, jest to możliwe?
- 23. Chrome DevTools: ustawianie punktu przerwania w zmianie przewijania dokumentu?
- 24. Przycisk skrótu do następnego punktu przerwania w programie Visual Studio
- 25. Jak używać zawartości stosu w warunku punktu przerwania LLDB?
- 26. pdb nie może przebić się w innym wątku?
- 27. Co to jest plik PDB?
- 28. Jak przejść do następnego punktu przerwania w IntelliJ?
- 29. O @ grid-float punktu przerwania zmiennej w BS 3
- 30. Włączenie kompresji na Heroku za pomocą python
jest tam, zamiast "j", zmienna, która przechowuje liczbę trafień dla tego punktu przerwania? – zenpoy
'j' jest aktualną iteracją pętli. co masz na myśli "liczba trafień dla tego punktu przerwania"? –
Dzięki, znalazłem odpowiedź .. – zenpoy