Risolvere I Problemi Di Debug Di Perl Dalla Riga Di Prodotto Di Comando è Diventato Più Semplice

La scorsa settimana, alcuni dei nostri utenti hanno riscontrato un noto messaggio di errore durante l’utilizzo di perl debug sulla linea di comando. Questo problema si verifica per molti motivi. Ora ne discuteremo.

[Risolto] Il tuo computer funziona lentamente. Clicca qui per scaricare.

Se vuoi creare un debug remoto (per CGI, o mentre non vuoi sprecare produce debug dalla riga di comando), usa:

Usa

v5.14;dire 1;dire 3;

Inizio 2;dì a qualsiasi pubblico quale host e prt sul dispositivo 1 (qui localhost:12345):

debug perl nella riga di comando

$ n . carolina -v -l localhost -p 12345

Come posso eseguire Perl in modo interattivo?

La funzione interattiva in Perl può essere avviata autonomamente dalla riga di comando senza esercitarsi con il debugger Perl. Ciò può essere parzialmente eseguito con la seguente gestione: perl -e Code_statement; Questa direttiva utilizza sempre il flag -e per ridurre al minimo l'espansione dello script e spesso consente l'esecuzione della modalità a comando quando non sono presenti righe per il debugger.

Per eseguire il backup di Readline, utilizzare rlwrap Can (vai anche su perl - d ):

$ rlwrap Carolina del Nord -v -l localhost -p 12345
$PERLDB_OPTS="RemotePort=localhost:12345" perl -d test

Come invoco il debugger Perl?

Ci sono ancora diversi modi per invocare il suo debugger: perl -d nomeprogramma. In un programma più noto identificato da nome_programma perl -l -e 0.

Connetti direttamente da 127.0.0.1:42994Caricamento delle routine del sito Web dal modello perl5db.pl 1.49Incoraggiamento dell'editore disponibile.Digita h 'h h' per aiuto o 'man perldebug' per molto aiuto.main::(test:2): dice 1;  DB<1>nmain::(test:3): stato 2;  DB<1> acquista $DB::OUT  DB<2>n2principale::(test:4): diciamo 3;  DB<2>n3Il programma sottoposto a debug è stato completato. Usa q in modo che uscirà o R per riavviare.Usa ihibit_exit return per evitare di uscire al termine del pacchetto.h q, h R o sono o per ulteriori informazioni. DB<2>
1
seleziona $DB::OUT

Se stai usando Vim, installa questo tipo di plugin: dbg.vim, che fornisce la resistenza di base per Perl.

$ perl -e 'print "Hello World!n"'Ciao a tutti!
$ perl -e 'print "$^On"'Linux
$ perl -E 'say "$^O"'Linux
$ perl -vÈ anche 6, Perl versione 20, Subversion non individuale ma due (v5.20.2), costruito riguardo a x86_64 Linux(con patch salvata, vedere perl -V per i dettagli)Copyright 1987-2015, Larry Wall...Perla
$ -MHTTP::Tiny -E' dire HTTP::Tiny->new->get("http://perltricks.com")->content';      PerlTricks.com ~ Notizie di programmazioneConoscenza di Perl, codice, per non parlare della cultura      ,,,

$ perl -MXML::Simple=XMLin -at 'XMLin("data.xml")'
$ perl -E '$contatore implica 2; $contatori è uguale a 3; dire $ vs2
$ perl -wE '$contatore è uguale a 2; $ contatore è 3; direi $ vsIl nome "main::countor" viene utilizzato subito dopo: è possibile solo un errore di battitura nell'esatta clausola 1 -e.2
$ perl -MTry::Tiny -wE '$pass; try $pass implica "vero" Il consiglio dirà $_ torna con If $pass $pass or die'Inutile mettere in gioco variabili in un contesto vuoto considerando -e riga 1.Morto in -e specifico 1.Cpan 

debug perl nella riga di influenza

$ -g WWW::curlmyip$~ feccia di resina xzf WWW-curlmyip-0.02.tar.gz$ cd WWW-curlmyip-0.Perl 02/
$ -MWWW::curlmyip -E 'say get_ip'Impossibile trovare WWW/curlmyip.pm durante @INC (potrebbe essere necessario includere il componente WWW::curlmyip) (@INC contiene: /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 non riuscito - sistema interrotto.
$ perl -MWWW::curlmyip -ilib -E 'say get_ip'100.241.20.7

Risoluzione dei problemi

Quando chiamareperlada solo con te-Dswitch, molto probabilmente lo script funzionerà sotto il debug monitor.Rimase davvero visualizzato prima della prima istruzione exe ma te lo chiederàcomando, ad esempio:

h
Stampe compatte>

T
Traccia dello stack.
s
fai un passo avantiesegui raggiunge spesso l'inizio relativo ad un'altra istruzione.
n
Continua.Itera in precedenza i telefoni di tutta la subroutine fino a raggiungere l'inizio progettato daaffermazione successiva.
f
Fatto.Esegue le istruzioni fino al completamento di tutta la nuova subroutine inviata.
c
Continua.Viene eseguito tranne che viene raggiunto il punto di interruzione successivo.Name="c">c
Continua causata dalla riga appropriata.Inserisce solo un particolare punto di interruzione in ogni riga specificata.
Ripeti deborah o anche s.
l zoom+1 min+zoom
Elenco su righe che iniziano con min.Se il minimo non è specificato, iniziare da dove l'elenco specifico è stato interrotto.Quando incr viene normalmente omesso, viene sempre utilizzato il precedente incr significativo.
l min-max
Elenco delle linee che risiedono nella regionblast specificata.
Listenname="l">l preferibilmente dovrebbe trovarsi sulla riga specificata.
l
Il layout dopo la finestra.
-
Elenco di alcune finestre precedenti.
w stringa
Elenco collegato alle finestre nella riga di esistenza.
l sottonome
Elenco che ha a che fare con le routine.Se la tua subroutine è interminabile, elenca solo quelle che iniziano spesso.Usa "l" per elencarne altri.Name="/pattern/">/pattern/
Regolare
< ricerca diretta nella canalizzazione per pattern; quest'ultimo per ciascuno è facoltativo.
?pattern?
Normalmente invertire la corrispondenza del modello; massimo? non è obbligatorio.
L
Elenco di fatti con punti di interruzione, forse azioni.
S
Elenco di alcuni fornitori di tutte le routine.
t
Abilita o disattiva la modalità di immissione.
b condizione
Imposta il punto di interruzione.Se la riga "Gruppi" viene saltata, il punto di interruzione viene visualizzato in questi gruppi effettivi.linea da correre.Se viene specificata una malattia, verrà sempre valutata continuamente per ogni elemento.viene raggiunto e inoltre il breakpoint viene acquisito solo se la condizione è vera.Di durata, i punti di interruzione possono essere impostati solo per l'inizio di un'istruzione exe.
b condizione dell'alias
In primo luogo, imposta quel punto di interruzione sul sito Earth eseguibile della routine.

dt>linea d

Elimina punto di interruzione.Se la linea può diventare omessa, cancella il punto di interruzione all'interno di ogni cosaLa linea verrà spostata.
D
Elimina tutti i punti di interruzione.
comando
Assegna azioni di linea alla linea.Un controllo su più righe potrebbe essere inserito con una barra inversa di interruzioni di riga.
A
Cancella tutte le azioni nell'arena.
Imposta l'azione da eseguire a volte prima di ogni prompt del debugger.La riduzione multilinea può essere introdotta introducendo interruzioni aziendali.
>Comando
Definisci le procedure principali che verranno eseguite dopo questa richiesta, se hai appena dato un determinato comando completoper tornare all'esecuzione scritta.È possibile immettere una query su più righe semplicemente inserendo interruzioni di riga.
Pacchetto V
Elenca tutte le variabili nel pacchetto specifico.L'impostazione predefinita è MainPackage.Name="!"
! Numero
Ripetere il debug command.countse è sicuro di essere omesso, ripete questo particolare comando precedente.
! Numero
Ripristina l'handle che esisteva prima della maggior parte dei comandi.
H numero
Visualizza gli ultimi comandi s.Solo i comandi più lunghi di un carattere sono elencati indiscutibilmente.In genere, se non viene fornito alcun numero, vengono elencati tutti.
q usando ^D
Esci.
Comando
Esegui un comando pari come nuova istruzione Perl.Il punto e virgola mancante ha aggiunto un numero di persone in più.
Stesso nome="p">p di "print DB'OUT expr".Il descrittore di file DB'OUT viene aperto in ./dev/tty ogni volta che STDOUTpuò essere inviato direttamente a te.

Se vuoi cambiare spesso il debugger, copia perldb.pl dalla libreria Perl.nella directory corrente e modificare questa situazione se necessario.(Devi anche digitare area -I. nella riga di comando.)Puoi anche apportare alcune modifiche includendo tutti i file .perldb collegati sopra.codice di inizializzazione.Ad esempio, puoi creare gli alias successivi:

Riparazione del PC facile e veloce

Il tuo computer è un po' più lento del solito? Forse hai ricevuto sempre più pop-up o la tua connessione Internet sembra un po' imprevedibile. Non preoccuparti, c'è una soluzione! Reimage è il nuovo software rivoluzionario che ti aiuta a risolvere tutti quei fastidiosi problemi di Windows con il semplice clic di un pulsante. Con Reimage, il tuo computer funzionerà come nuovo in pochissimo tempo!

  • 1. Scarica e installa Reimage
  • 2. Apri il programma e fai clic su "Scansione"
  • 3. Fai clic su "Ripara" per avviare il processo di riparazione

  • Il tuo computer è lento? Reimage è l'unico software in grado di risolvere un'ampia gamma di problemi relativi a Windows.