


So verwenden Sie pdb zum Debuggen von Python in einer Linux-Umgebung
pdb ist ein Paket, das mit Python geliefert wird. Es bietet eine interaktive Quellcode-Debugging-Funktion für Python-Programme. Zu seinen Hauptfunktionen gehören das Festlegen von Haltepunkten, das Debuggen von Einzelschritten, das Anzeigen des aktuellen Codes, das Anzeigen von Stapelfragmenten und dynamische Funktionen Ändern Sie den Wert einer Variablen usw. pdb bietet einige häufig verwendete Debugging-Befehle.
Beschreibung allgemeiner Befehle für pdb:
l #step Einzelschrittoperation, Kann die Funktion eingeben
p variable Haltepunkte
cl #clear alle Haltepunkte löschen 🎜>
Debug-Protokoll:
pdb set breakpoints können dem Programm hinzugefügt werden:
import pdb
Fügen Sie pdb.set_trace() hinzu, wo Haltepunkte gesetzt werden müssen
Führen Sie python -m pdb test.py aus
Im Folgenden wird anhand konkreter Beispiele beschrieben, wie Sie pdb zum Debuggen verwenden.
Listing 1. Testcode-Beispiel
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = " ccc"
final = a + b + c
print final
Listing 2. Verwenden von pdb zum Debuggen
[root@rcc-pok-idg-2255 ~]# python epdb1.py
> /root/epdb1.py(4)?()
-> b = "bbb"
(Pdb) n
> ( )
-> c = "ccc"
(Pdb)
> /root/epdb1.py(6)?()
-> 🎜 > (Pdb) list
1 import pdb
2 a = "aaa"
3 pdb.set_trace()
4 b = "bbb"
5 c = "ccc"
6 -> final = a + b + c
7 print final
[EOF]
(Pdb)
[EOF]
(Pdb) n
> / epdb1.py(7)?()
-> print final
(Pdb)
Den Wert der Variablen drucken: Wenn Sie den Wert der Variablen während des Debuggens drucken müssen, Sie können p direkt über dem Variablennamen verwenden. Beachten Sie jedoch, dass beim Drucken der spezifische Wert erst angezeigt wird, nachdem die aktuelle Anweisung ausgeführt wurde. Andernfalls wird ein NameError: <-Fehler angezeigt gemeldet werden.
Listing 3. Drucken von Variablen während des Debug-Prozesses
[root@rcc-pok-idg-2255 ~]# python epdb1.py
> /root/epdb1.py(4)?( )
-> b = "bbb"
(Pdb) n
> /root/epdb1.py(5)?()
-> c = "ccc"
(Pdb) p b
'bbb'
(Pdb)
'bbb'
(Pdb) n
> /root/epdb1.py(6)?()
- > final = a + b + c
(Pdb) p c
'ccc'
(Pdb) p final
*** NameError:
> /root/epdb1.py(7)?()
-> print final
(Pdb) p final
'aaabbbccc'
(Pdb)
Verwenden Sie c, um das aktuelle Debug zu stoppen und die Ausführung des Programms fortzusetzen. Wenn im folgenden Programm weitere Anweisungen von set_statement() vorhanden sind, wechselt es erneut in den Debug-Status. Leser können die Überprüfung von set_trace() vor dem endgültigen Codedruck hinzufügen.
Listing 4. Beenden Sie das Debuggen und führen Sie das Programm weiter aus
[root@rcc-pok-idg-2255 ~]# python epdb1.py
> (4 )?()
-> b = "bbb"
(Pdb) n
> /root/epdb1.py(5)?()
-> ccc"
(Pdb) c
aaabbbccc
Code anzeigen: Der aktuelle Codeblock wird beim Debuggen möglicherweise nicht gespeichert. Wenn Sie einen bestimmten Codeblock anzeigen möchten, können Sie ihn mit dem Befehl list oder l anzeigen. list verwendet den Pfeil ->, um auf die aktuelle Debug-Anweisung zu verweisen.
Listing 6. Während des Debug-Prozesses angezeigter Code
[root@rcc-pok-idg-2255 ~]# python epdb1.py
> /root/epdb1.py(4)?( )
-> b = "bbb"
(Pdb) list
1 import pdb
2 a = "aaa"
3 pdb.set_trace()
4 -> b = "bbb"
5 c = "ccc"
6 final = a + b + c
7 pdb.set_trace()
8 print final
[EOF]
( Pdb) c
> /root/epdb1.py(8)?()
-> print final
(Pdb) list
3 pdb.set_trace()
4 b = "bbb"
5 c = "ccc"
6 final = a + b + c
7 pdb.set_trace()
8 -> print final
[EOF]
(Pdb)
Debug bei der Verwendung von Funktionen
Listing 6. Beispiel für die Verwendung von Funktionen
import pdb
def combine(s1,s2 ): # define Unterroutine kombinieren, die...
s3 = s1 + s2 + s1 # s2 zwischen Kopien von s1 einklemmt, ...
s3 = '"' + s3 +'"' # schließt es in doppelte Anführungszeichen ein,. ..
return s3 # und gibt es zurück
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = Combine (a,b)
print final
Wenn Sie n direkt zum Debuggen verwenden, wird es als normale Zuweisung behandelt, wenn Sie die final=combine(a,b)-Anweisung erreichen Verarbeitung, geben Sie den Druck endgültig ein. Was ist, wenn Sie eine Funktion debuggen möchten? Sie können s direkt zum Aufrufen des Funktionsblocks verwenden. Das einstufige Debuggen in der Funktion ähnelt der obigen Einführung. Wenn Sie die Funktion nicht schrittweise durchlaufen möchten, können Sie direkt am Haltepunkt r drücken, um zum aufrufenden Ort zu gelangen.
清单 7. 对函数进行 debuggen
[root@rcc-pok-idg-2255 ~]# python epdb2.py
> /root/epdb2.py(10)?()
-> b = "bbb"
(Pdb) n
> /root/epdb2.py(11)?()
-> c = "ccc"
(Pdb) n
> /root/epdb2.py(12)?()
-> final = Combine(a,b)
(Pdb) s
--Call--
> /root/epdb2.py(3)combine()
-> def combin(s1,s2): # Subroutine Combine definieren, die...
(Pdb) n
> /root/epdb2.py(4)combine()
-> s3 = s1 + s2 + s1 # fügt s2 zwischen Kopien von s1 ein, ...
(Pdb) list
1 import pdb
2
3 def combin(s1,s2): # Unterroutine definieren kombinieren, was...
4 -> s3 = s1 + s2 + s1 # fügt s2 zwischen Kopien von s1 ein, ...
5 s3 = '"' + s3 +'"' # schließt es in doppelte Anführungszeichen ein,...
6 return s3 # und gibt es zurück.
7
8 a = "aaa"
9 pdb.set_trace()
10 b = "bbb"
11 c = "ccc"
(Pdb) n
> /root/epdb2.py(5)combine()
-> s3 = '"' + s3 +'"' # schließt es in doppelte Anführungszeichen ein,...
(Pdb) n
> /root/epdb2.py(6)combine()
-> return s3 # und gibt es zurück.
(Pdb) n
--Return--
> /root/epdb2.py(6)combine()->'"aaabbbaaa"'
-> return s3 # und gibt es zurück.
(Pdb) n
> /root/epdb2.py(13)?()
-> final drucken
(Pdb)
在调试的时候动态改变值如下实例.需要注意的是下面有个错误,原因是 b 已经被赋值了,如果想重新改变 b 的赋值,则应该使用!b。
清单 8. 在调试的时候动态改变值
[root@rcc-pok- idg-2255 ~]# python epdb2.py
> /root/epdb2.py(10)?() -> b = "bbb" (Pdb) var = "1234" (Pdb) b = "avfe" *** The specified object '= "avfe"' is not a function or was not found along sys.path. (Pdb) !b="afdfd" (Pdb)
相关推荐:
Das obige ist der detaillierte Inhalt vonSo verwenden Sie pdb zum Debuggen von Python in einer Linux-Umgebung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

Visual Studio Code (VSCODE) wurde von Microsoft entwickelt, das mit dem Elektronen -Framework erstellt wurde und hauptsächlich in JavaScript geschrieben wurde. Es unterstützt eine breite Palette von Programmiersprachen, einschließlich JavaScript, Python, C, Java, HTML, CSS usw., und kann durch Erweiterungen Unterstützung für andere Sprachen unterstützen.

Zu den Hauptanwendungen von Linux gehören: 1. Server -Betriebssystem, 2. Eingebettes System, 3. Desktop -Betriebssystem, 4. Entwicklungs- und Testumgebung. Linux zeichnet sich in diesen Bereichen aus und bietet Stabilität, Sicherheits- und effiziente Entwicklungstools.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Ausführen von Aufgaben in VSCODE: Erstellen Sie Tasks.json -Datei, Versions- und Aufgabenliste angeben. Konfigurieren Sie den Beschriftung, den Befehl, die Argumente und die Art der Aufgabe; Speichern und laden Sie die Aufgabe neu; Führen Sie die Aufgabe mit der Verknüpfungsschlüssel -Strg -Verschiebung B (macOS für CMD Shift B) aus.

VS Code One-Step/Nächster Schritt Verknüpfungsschlüsselnutzung: Einschritt (rückwärts): Windows/Linux: Strg ←; macOS: CMD ← Nächster Schritt (vorwärts): Windows/Linux: Strg →; macos: cmd →

Das Ausführen von Code in VS -Code dauert nur sechs Schritte: 1. Öffnen Sie das Projekt; 2. Erstellen und schreiben Sie die Codedatei; 3. Öffnen Sie das Terminal; 4. Navigieren Sie zum Projektverzeichnis; 5. Führen Sie den Code mit den entsprechenden Befehlen aus; 6. Die Ausgabe anzeigen.
