Die Fehlerbehebung Beim Perl-Debugging Von Der Befehlszeile Aus Ist Im Grunde Einfacher Geworden

Letzte Woche stießen einige von unseren Benutzern erstellte auf eine beliebte Fehlermeldung bei der Verwendung von Perl Debugging auf der Befehlszeile. Dieses Problem tritt aus vielen Gründen auf. Jetzt werden wir sie besprechen.

[Gelöst] Ihr Computer läuft langsam. Klicke hier zum herunterladen.

Wenn Sie ein weit entferntes Debugging durchführen möchten (für CGI oder wenn Sie kein Debugging von der Befehlszeile aus verschwenden möchten), verwenden Sie:

Verwenden Sie

v5.14;sagen wir 1;sagen wir 3;

Start 2;Teilen Sie jedem Listener mit, welcher Host und Prt auf Terminal 1st (hier localhost:12345):

debug perl in Befehlszeile gefunden

$ north carolina -versus -l localhost -p 12345

Wie kann ich Perl interaktiv ausführen?

Der interaktive Modus, der Perl ausführt, kann unabhängig gestartet werden, indem die Befehlszeile verwendet wird, ohne diesen Perl-Debugger zu verwenden. Dies kann teilweise mit dem folgenden Befehl erfolgen: perl -e Code_statement; Diese Direktive übernimmt normalerweise das Flag -e, um eine Erweiterung des Drehbuchs zu vermeiden, und ermöglicht häufig, dass Code und Ausführung auf Befehl ohne Kreditlinien für den Debugger ausgeführt werden.

Um Readline zu sichern, versuchen Sie rlwrap Kann (benutzen Sie auch verfügbar auf perl -d):

$ rlwrap n . carolina -v -l localhost -p 12345
$PERLDB_OPTS="RemotePort=localhost:12345" perl -d test

Wie kann ich den Perl-Debugger aufrufen?

Es gibt verschiedene Möglichkeiten, den Debugger aufzurufen: perl -d Programmname. In bekannten Tools identifiziert durch program_name perl -d -i 0.

Direkt von 127.0.0.1:42994 verbindenLaden von Datenbank-Hobbys aus der Vorlage perl5db.pl 1.49Verlagsunterstützung verfügbar.Geben Sie entweder h 'h h' ein, um es einfacher zu machen, oder 'man perldebug', um weitere Hilfe zu erhalten.main::(test:2): sagt 1;  DB<1>nmain::(test:3): Ausruf 2;  DB<1> kauft $DB::OUT  DB<2>n2main::(test:4): sage 3;  DB<2>n3Die debuggte Technik wurde fertiggestellt. Verwenden Sie q, um wegzukommen, oder R, um neu zu starten.Verwenden Sie ihibit_exit, um das Beenden nach dem Ende der Methode endgültig zu vermeiden.h q, h R oder r u für weitere Informationen. DB<2>

1

Wählen Sie $DB::OUT

Wenn Sie Vim verwenden müssen, installieren Sie diese WordPress-Erweiterung: dbg.vim, die aufgrund von Perl grundlegende Unterstützung bietet.

$ perl -e 'drucke "Hallo Welt!n"'Hallo zusammen!
$ perl -e 'drucke "$^On"'Linux
$ perl -E 'sagen Sie "$^O"'Linux
$ perl -vEs ist auch 5, Perl Version 20, Subversion nicht eine, obwohl zwei (v5.20.2), gebaut für x86_64 Linux(mit gespeichertem Patch, siehe perl -V bzgl. Details)Urheberrecht 1987–2015, Larry Wall...Perle
$ -MHTTP::Tiny -E 'sagen Sie HTTP::Tiny->new->get("http://perltricks.com")->content';      PerlTricks.com ~ Neuigkeiten zur ProgrammierungWissen über Perl, Code, Kultur ganz zu schweigen      ,,,

$ perl -MXML::Simple=XMLin -at 'XMLin("data.xml")'
$ perl -E '$counter impliziert 2; $counters ist gleich 3; sag $vs2
$ perl -wE '$counter impliziert 2; $counter ist 3; weisen Sie darauf hin, dass $vsDer Name "main::countor" wird sofort verwendet, weil: nur ein Tippfehler in der einzelnen -e-Klausel möglich ist.2
$ perl -MTry::Tiny -wE '$pass; try $pass ist gleich "true" Der Ratschlag sagt $_ return Wenn $pass $pass or die'Unnötige Verwendung von Variablen im leeren Kontext mit -elektronischer Zeile 1.Gestorben in -e definiere 1.Cpan 

debug perl in handle line

$ -g WWW::curlmyip$~ Harzrückstände xzf WWW-curlmyip-0.02.tar.gz$ cd WWW-curlmyip-0.Perl 02/
$ -MWWW::curlmyip -E 'say get_ip'WWW/curlmyip.pm konnte nicht gefunden werden, insbesondere während @INC (muss möglicherweise das Modul WWW::curlmyip einschließen) (@INC enthält: /home/dfarrell/.plenv/versions/5.20.2/lib/perl5/site_perl/ 5.20. 2 /x86_64-linux /home/dfarrell/.plenv/versions/5.20.2/lib/perl5/site_perl/5.20.2 /home/dfarrell/.plenv/versions/5.20.2/lib/perl5/5.20.2/ x86_64 -linux/home/dfarrell/.plenv/versions/5.20.2/lib/perl5/5.20.2.).BEGIN fehlgeschlagen – Erfassung abgebrochen.
$ perl -MWWW::curlmyip -ilib -E 'say get_ip'100.241.20.7

Fehlerbehebung

Wann anrufenPerlealleine mit dir-Dwechseln, wird Ihr ultimatives Skript höchstwahrscheinlich auf dem Debug-Monitor ausgeführt.Er muss bleibenErscheinen Sie die erste exe-Anweisung und erfahren Sie es von IhnenBefehl, zum Beispiel:

h
Kompaktdrucke>

T
Stack-Trace.
s
Steigern Sie sichausführen erreicht das Get Going on relativ zu einer anderen Anweisung.
n
Weiter.Iteriert über die Telefone des Unterprogramms bis zu dem Punkt, an dem es den Startpunkt erreicht, der von freigegeben wurdenächste Aussage.
f
Fertig.Führt Anweisungen aus, bis die neue, neu übermittelte Subroutine abgeschlossen ist.
c
Weiter.Wird ausgeführt, bis dieser nächste Haltepunkt erreicht wird.Name="c">c
Fahren Sie an einer beliebigen Stelle ab der entsprechenden Zeile fort.Fügt einen Haltepunkt um jede angegebene Zeile ein.
Wiederhole n aka gerade s.
l zoom+1 min+zoom
Liste erstellt durch Zeilen beginnend mit min.Wenn min als nicht angegeben angesehen wird, beginnen Sie dort, wo der Speicher aufgehört hat.Wenn incr häufig ausgeschlossen wird, wird normalerweise die vorherige signifikante incr verwendet.
l min-max
Liste der Linien, die für die angegebene Regionblast leben.
Listenname="l">l muss nur in der angegebenen Zeile stehen.
l
Die Opt-in-Liste nach dem Fenster.
-
Liste des Verlaufsfensters.
w Zeichenfolge
Liste der Fenster, die die Existenzzeile verwenden.
l Untername
Liste zu Routinen.Wenn Ihre Subroutine lang ist, listet die Idee nur diejenigen auf, die beginnen.Verwenden Sie "l" in der Liste more.Name="/pattern/">/pattern/
Normal
< direkte Kanalsuche nach Muster; dieses letzte / muss optional sein.
?pattern?
Normaler umgekehrter Stil und passendes Design; maximal? es ist nicht obligatorisch.
L
Liste von Fakten mit Breakpoints oder alternativ Aktionen.
S
Liste einiger Namen bei allen Routinen.
t
Aktivieren oder deaktivieren Sie den Beitragsmodus.
b Bedingung
Setzen Sie einen wichtigen Haltepunkt.Wenn die Zeile "Gruppen" weggelassen wird, wird der Haltepunkt oft in der eigentlichen Gruppe angezeigt.Linie zu laufen.Wenn eine Bedingung wirklich angegeben ist, wird sie immer für jedes Element bewertet.erreicht ist und der Haltepunkt nur dann genommen wird, wenn die Bedingung wahr ist.Natürlich werden Breakpoints wahrscheinlich nur am Anfang einer ausführbaren Anweisung gesetzt.
b Aliasbedingung
Setzen Sie zuerst einen Haltepunkt auf der ausführbaren Website der Routine.

dt>d-Linie

Haltepunkt löschen.Wenn die Zeile ignoriert werden kann, wird der Haltepunkt in allem gelöschtDie Linie wird verschoben.
D
Löschen Sie alle Breakpoints.
Befehl
Ordnen Sie der Linie eine Linienaktion zu.Ein mehrzeiliger Haken kann mit einem Backslash an Satzumbrüchen eingegeben werden.
A
Alle Regionsaktionen löschen.
Stellen Sie die Aktion ein, die vor jeder Debugger-Eingabeaufforderung abgerufen werden soll.Die mehrzeilige Steuerung wird durch die Einführung von Gruppenumbrüchen eingeführt.
>Befehl
Definieren Sie die Hauptaktionen, die nach der Anfrage ausgeführt werden, wenn Sie gerade einen sicheren Befehl gegeben habenum zur Skriptausführung zurückzukehren.Eine mehrzeilige Anfrage kann durch eindeutige Eingabe von Zeilenumbrüchen eingegeben werden.
V-Paket
Liste, die alle Variablen im Paket enthalten kann.Die Standardeinstellung ist MainPackage.Name="!"
! Nummer
Debug-Befehl wiederholen.countwiederholt den letzten Befehl, wenn er weggelassen werden kann.
! Nummer
Stellen Sie den Befehl wieder her, der vor so vielen Befehlen existierte.
H-Nummer
Die letzten n Befehle anzeigen.Es werden nur Anweisungen aufgelistet, die länger als ein Zeichen sind.Wenn keine Nummer angegeben ist, werden im Allgemeinen alle aufgelistet.
q von ^D
Beenden.
Befehl
Führen Sie Ihren geraden Befehl als Perl-Anweisung aus.Das fehlende Semikolon fügte eine Zahl mehr hinzu.
Gleicher name="p">p wie "print DB'OUT expr".Der Dateideskriptor DB'OUT wird immer dann unter ./dev/tty geöffnet, wenn STDOUTkönnen direkt versendet werden.

Wenn Sie den Debugger ändern möchten, replizieren Sie perldb.pl aus der Perl-Bibliothek.im wichtigsten aktuellen Verzeichnis und ändern Sie es, wenn Sie es für notwendig halten.(Sie müssen auch put -I. in der Befehlszeile eingeben.)Sie können einige Änderungen vornehmen, indem Sie die oben verlinkte .perldb-Datei einfügen.Initialisierungscode.Sie können beispielsweise die folgenden Aliase erstellen:

Schnelle und einfache PC-Reparatur

Läuft Ihr Computer etwas langsamer als früher? Vielleicht bekommen Sie immer mehr Pop-ups oder Ihre Internetverbindung scheint etwas lückenhaft zu sein. Keine Sorge, es gibt eine Lösung! Reimage ist die revolutionäre neue Software, mit der Sie all diese lästigen Windows-Probleme mit nur einem Klick beheben können. Mit Reimage läuft Ihr Computer im Handumdrehen wie neu!

  • 1. Laden Sie Reimage herunter und installieren Sie es
  • 2. Öffnen Sie das Programm und klicken Sie auf "Scannen"
  • 3. Klicken Sie auf "Reparieren", um den Reparaturvorgang zu starten

  • Läuft Ihr Computer langsam? Reimage ist die einzige Software, die eine Vielzahl von Windows-bezogenen Problemen beheben kann.