Pokaż kontekst po każdym ruchu za pomocą Pythona pdb

0

Czy mogę pokazać kontekst za każdym razem, gdy przechodzę przez kod za pomocą pdbdebugera Pythona bez konieczności jawnego wywoływania polecenia list?

Próbowałem połączyć łańcuchy za pomocą czegoś takiego jak n & llub n && llub nllub n + llub n; l. Nie mogę znaleźć żadnej dokumentacji dotyczącej tego.

Problem polega na tym, że za każdym razem, gdy przechodzę przez kod, kończę pisanie, n RETa potem albo … l RETalbo l l RET… każdy… czas, aby zobaczyć jakiś kontekst.

Przewodnik Steve'a Fergusapdb dokładnie opisuje pozornie zamierzony przebieg pracy:

Więc typowa interakcja z pdb może wyglądać tak

  • Napotkano instrukcję pdb.set_trace () i rozpoczyna się śledzenie z pytaniem (Pdb)
  • Naciśnij „n”, a następnie ENTER, aby rozpocząć przechodzenie przez kod.
  • Wystarczy nacisnąć ENTER, aby ponownie wykonać krok.
  • Wystarczy nacisnąć ENTER, aby ponownie wykonać krok.
  • Wystarczy nacisnąć ENTER, aby ponownie wykonać krok. itp. itd. itd.
  • W końcu zdajesz sobie sprawę, że jesteś trochę zagubiony. Nie masz już pewności, gdzie jesteś w swoim programie. Więc…
  • Naciśnij „l”, a następnie ENTER. Wyświetla obszar aktualnie wykonywanego programu.
  • Sprawdzasz wyświetlacz, orientujesz się i jesteś gotowy, aby zacząć od nowa. Więc….
  • Naciśnij „n”, a następnie ENTER, aby rozpocząć przechodzenie przez kod.
  • Wystarczy nacisnąć ENTER, aby ponownie wykonać krok.
  • Wystarczy nacisnąć ENTER, aby ponownie wykonać krok. itp. itd. itd.

Wydaje mi się oczywiste, że pokazanie kontekstu po każdym ruchu byłoby przydatne i pożądane przez użytkownika. Ponieważ jednak wydaje się, że nie ma prostej opcji, myślę, że używam pdbnieprawidłowo. Może moja stała potrzeba zobaczenia kontekstu wskazuje na niewłaściwe użycie? Ale jak inaczej miałbym użyć pdb?

Lorem Ipsum
źródło

Odpowiedzi:

0

Można to zrobić, tworząc .pdbrcplik i używając aliaspolecenia.

W twoim .pdbrcpliku

alias n next ;; l
alias s step ;; l

Następnie, gdy naciśniesz n, polecenie next ;; lzostanie wydane zamiast i podobnie dla s. Dwukropki dwukropka oddzielają polecenia, tak jakby były wciśnięte next RET l RET.

Możesz przeczytać więcej o aliaspoleceniu i innych, w dokumentacji pdb .

Ostrzegam, że pdbprzeczytanie .pdbrcpliku to trochę kłopotów w systemie Windows. pdbszuka HOMEzmiennej systemowej, która domyślnie nie jest dostępna w systemie Windows. Musisz ręcznie utworzyć HOMEzmienną systemową i umieścić w niej folder zawierający .pdcrc. Udokumentowałem konkretnie, jak to zrobić w innej odpowiedzi: Jak zdefiniować plik .pdbrc na komputerze z systemem Windows?

Lorem Ipsum
źródło