2015-07-03 29 views
8

Czy jest polecenie, aby wyjść z cykli (powiedzmy, na chwilę) podczas debugowania na ipdb bez konieczności korzystania z punktów przerwania z nich?debugger ipdb, wycofać z cyklu

Używam polecenia until do wykreślania ze spisu, ale nie wiem, jak zrobić coś podobnego, jeśli to możliwe, z całych bloków pętli.

Odpowiedz

3

To może wydawać się oczywiste: skok sprawia, że ​​można przeskoczyć. Oznacza to, że nie wykonujesz skaczonych linii: powinieneś użyć tego do pominięcia kodu, którego nie chcesz uruchamiać.

Prawdopodobnie potrzebujesz tbreak (Tymczasowy punkt przerwania, który jest usuwany automatycznie po pierwszym trafieniu) Argumenty są takie same jak przerwa), tak jak to zrobiłem, gdy znalazłem tę stronę.

1

Jeśli chcesz użyć innego debuggera, trepan, masz więcej możliwości. Jest bardziej podobny do gdb. Możesz więc policzyć, ile razy chcesz wykonać krok. Lub możesz podać numer linii w komendzie debuggera continue, która w istocie ustawia tymczasowy punkt przerwania na linii, a następnie wydaje komunikat "kontynuuj". Inne zmiany, które się zmieniają to: "set different". Zobacz także przyrostki równomierne, które możesz umieścić na step.

Zauważ, że podobnie jak ipdb, jest podświetlanie składni tekstu źródłowego.

7

Uważam, że jest to celem polecenia until. To jest jak next z tym wyjątkiem, że gdy nastąpi skok do poprzedniego numeru linii dla pętli, będzie on kontynuowany aż do wyjścia z pętli.

unt(il) 
Continue execution until the line with a number greater than the current 
one is reached or until the current frame returns 

Ogólnie rzecz biorąc, aby "wyjść" z bieżącej funkcji, użyj return.

r(eturn) 
Continue execution until the current function returns. 
+0

nie, dopóki na przykład nie zostaną wykonane ćwiczenia ze spisu. Kontynuuje wykonywanie, DO ODTWARZANIA innego numeru linii jako bieżącego, właśnie to. Jeśli w jakimś bloku kodu (na, podczas, cokolwiek innego), nie ma sposobu, ale z breakpoints, o ile ja badane –

15

Możesz użyć j <line number> (jump), aby przejść do innej linii. np j 28 aby przejść do linii 28.

+0

dobrze, myślę, że jest to najbardziej zbliżone do tego, czego potrzebuję, dziękuję bardzo! :) –