Zeige Kontext nach jeder Bewegung mit Python pdb

441
Lorem Ipsum

Kann ich den Kontext jederzeit anzeigen, wenn ich mit Pythons pdbDebugger durch den Code schritt, ohne den Befehl list explizit aufzurufen?

Ich habe versucht, Befehle mit etwas n & loder n && loder nloder n + loder zu verketten n; l. Ich kann dazu keine Dokumentation finden.

Das Problem ist, jedes Mal, wenn ich durch den Code gehe, ende ich am Ende n RETund entweder l REToder l l RET... jede einzelne Zeit, um den Kontext zu sehen.

Steve Fergs Handbuch beschreibt den anscheinend beabsichtigten pdbWorkflow genau:

Eine typische Interaktion mit pdb könnte also so aussehen

  • Die Anweisung pdb.set_trace () wurde gefunden, und Sie beginnen mit der Aufforderung (Pdb) mit der Verfolgung
  • Sie drücken "n" und dann ENTER, um den Code zu durchlaufen.
  • Sie drücken einfach ENTER, um erneut zu springen.
  • Sie drücken einfach ENTER, um erneut zu springen.
  • Sie drücken einfach ENTER, um erneut zu springen. etc. etc. etc.
  • Irgendwann wird dir klar, dass du ein bisschen verloren bist. Sie wissen nicht mehr genau, wo Sie sich in Ihrem Programm befinden. So…
  • Sie drücken "l" und dann ENTER. Dies listet den Bereich Ihres Programms auf, der gerade ausgeführt wird.
  • Sie inspizieren das Display, orientieren sich und sind bereit für den Neustart. So….
  • Sie drücken "n" und dann ENTER, um den Code zu durchlaufen.
  • Sie drücken einfach ENTER, um erneut zu springen.
  • Sie drücken einfach ENTER, um erneut zu springen. etc. etc. etc.

Es erscheint mir offensichtlich, dass das Anzeigen des Kontextes nach jeder Bewegung für den Benutzer nützlich und erwünscht ist. Da es jedoch scheinbar keine einfache Möglichkeit gibt, dies zu tun, denke ich, dass ich es pdbfalsch benutze . Vielleicht ist mein ständiges Bedürfnis, den Kontext zu sehen, ein Hinweis auf Missbrauch? Aber wie sollte ich sonst gebrauchen pdb?

0

1 Antwort auf die Frage

0
Lorem Ipsum

Dazu können Sie eine .pdbrcDatei erstellen und den aliasBefehl verwenden.

In Ihre .pdbrcDatei setzen,

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

Wenn Sie dann drücken n, next ;; lwird stattdessen der Befehl ausgegeben s. Die Doppel-Semikolons trennen die Befehle so, dass Sie wie gedrückt werden next RET l RET.

Weitere Informationen zu diesem aliasBefehl und anderen Informationen finden Sie in der pdb-Dokumentation .

Seien Sie gewarnt, dass pdbdas Lesen der .pdbrcDatei unter Windows etwas umständlich ist. pdbsucht nach der HOMESystemvariablen, die unter Windows standardmäßig nicht verfügbar ist. Sie müssen manuell eine HOMESystemvariable erstellen und den Ordner darin ablegen .pdcrc. In einer anderen Antwort habe ich genau dokumentiert, wie das geht. Wie kann ich .pdbrc auf einem Windows-Rechner definieren?