GNU/Linux >> Znalost Linux >  >> Linux

Výuka ladicího programu Perl:10 snadných kroků k ladění programu Perl

Dříve jsme diskutovali o základech, jak napsat a spustit program v perlu pomocí příkladu Perl Hello World.

V tomto článku se podíváme na to, jak ladit program / skript v perlu pomocí ladicího programu Perl , který je podobný nástroji gdb pro ladění kódu C.

Chcete-li ladit program v perlu, vyvolejte debugger perl pomocí „perl -d“, jak je uvedeno níže.

# perl -d  ./perl_debugger.pl

Abychom podrobně porozuměli příkazům ladicího programu perl, vytvořte si následující ukázkový program perl (perl_debugger.pl).

$ cat perl_debugger.pl
#!/usr/bin/perl -w

# Script to list out the filenames (in the pwd) that contains specific pattern.

#Enabling slurp mode
$/=undef;

# Function : get_pattern
# Description : to get the pattern to be matched in files.
sub get_pattern
{
my $pattern;
print "Enter search string: ";
chomp ($pattern = <> );
return $pattern;
}

# Function : find_files
# Description : to get list of filenames that contains the input pattern.
sub find_files
{
my $pattern = shift;
my (@files,@list,$file);

# using glob, obtaining the filenames,
@files = <./*>;

# taking out the filenames that contains pattern.
@list = grep {
$file = $_;
open $FH,"$file";
@lines = <$FH>;
$count = grep { /$pattern/ } @lines;
$file if($count);
} @files;
return @list;
}
# to obtain the pattern from STDIN
$pattern = get_pattern();

# to find-out the list of filenames which has the input pattern.
@list = find_files($pattern);

print join "\n",@list;

1. Zadejte Perl Debugger

# perl -d ./perl_debugger.pl

vyzve to,
DB<1>

2. Prohlédněte si konkrétní řádky nebo příkazy podprogramu pomocí (l)

DB<1> l 10
10:můj $vzor;

DB<2> l get_pattern
11 {
12:můj $vzor;
13:print “Zadejte vyhledávací řetězec:“;
14:chomp ($vzor =);
15:return $pattern;
16 }

3. Nastavte bod přerušení na funkci get_pattern pomocí (b)

DB<3>b najít_soubory

4. Nastavte zarážku na konkrétním řádku pomocí (b)

DB<4>b 44

5. Zobrazte zarážky pomocí (L)

DB<5> L
./perl_debugger.pl:
22:můj $vzor =posun;
přerušit, pokud (1)
44:tisknout spojení „\n“,@ list;
break if (1)

6. krok za krokem provádění pomocí (s a n)

DB<5> s
main::(./perl_debugger.pl:39):$pattern =get_pattern();

DB<5> s
main::get_pattern(./perl_debugger.pl:12):
12:my $pattern;

Volby s a n provádějí krok za krokem každý příkaz. Možnost s vstoupí do podprogramu. Možnost n provede podprogram v jediném kroku (překročení).

Volba s provede krokování do podprogramu, ale zatímco volba n, která by provedla podprogram (překročení).

7. Pokračujte do dalšího bodu přerušení (nebo čísla řádku nebo podprogramu) pomocí (c)

DB<5> c
Zadejte vyhledávací řetězec:perl
main::find_files(./perl_debugger.pl:22):
22:my $pattern =shift;

8. Pokračujte dolů na konkrétní číslo řádku pomocí (c)

DB<5> c 36
main::find_files(./perl_debugger.pl:36):
36:return @list;

9. Vytiskněte hodnotu v konkrétní proměnné pomocí (p)

DB<6> p $pattern
perl

DB<7> c
main::(./perl_debugger.pl:44):tisknout spojení „\n“,@list;
DB<7> c
./perl_debugger.pl
Odladěný program byl ukončen. Použijte q pro ukončení nebo R pro restart,
použijte o inhibitor_exit, abyste se vyhnuli zastavení po ukončení programu,
h q, h R nebo h o pro získání dalších informací.

Po poslední operaci pokračování se výstup vytiskne na stdout jako „./perl_debugger.pl“, protože odpovídá vzoru „perl“.

10. Získejte ladicí příkazy ze souboru (zdroje)

Debugger Perl může získat příkaz debug ze souboru a spustit jej. Například vytvořte soubor s názvem „debug_cmds“ pomocí příkazů perl debug jako,

c
p $vzor
q

Všimněte si, že R se používá k restartování operace (není třeba ukončovat a znovu spouštět ladicí program).
DB<7> R
DB<7> zdroj debug_cmds
>> c
Enter hledaný řetězec:perl
./perl_debugger.pl
Laděný program ukončen. Použijte q pro ukončení nebo R pro restart,
použijte o inhibitor_exit, abyste se vyhnuli zastavení po ukončení programu,
h q, h R nebo h o pro získání dalších informací.
>> p $pattern
perl
>> q

Poznámka :Pokud jste v perlu relativně nováčci, podívejte se na náš předchozí článek:20 tipů na programování v perlu pro začátečníky.

Shrnutí příkazů ladicího programu perl

Následující možnosti lze použít, jakmile vstoupíte do ladicího programu perl.

  • h nebo h h – zobrazí se stránka nápovědy
  • c – pokračovat dolů od aktuálního provádění do bodu přerušení, jinak do názvu podprogramu nebo čísla řádku,
  • p – zobrazení hodnot proměnných,
  • b – pro umístění zarážek,
  • L – zobrazí se nastavené body přerušení,
  • d – smaže zarážky,
  • s – pro přechod na spuštění dalšího řádku.
  • n – překročí spuštění dalšího řádku, takže pokud je další řádek voláním podprogramu, provede podprogram, ale nespustí se do něj za účelem kontroly.
  • zdrojový soubor – převezme ladicí příkazy ze souboru.
  • l subname – pro zobrazení příkazů provedení dostupných v podprogramu.
  • q – pro ukončení režimu ladění.

Linux
  1. Jak nainstalovat Microsoft Edge na Linux v několika snadných krocích

  2. Návod na snadné dokončení bash??

  3. Kaktusy na serveru ISPConfig v 10 snadných krocích

  1. IlohaMail na vašem serveru ISPConfig v 10 snadných krocích

  2. Enterprise CMS TYPO3 na serveru ISPConfig v 10 snadných krocích

  3. Jak zálohovat svůj účet cPanel v 9 snadných krocích

  1. Příklad Perl Hello World:Jak napsat a spustit program Perl na OS Unix

  2. Jak ladit program C pomocí gdb v 6 jednoduchých krocích

  3. 7 Vzorové příklady pro ladění spouštění programu v Linuxu