J'ai un script Perl, appelons-le a.pl code> où les deux premières lignes ressemblent à ceci comme suit:
b C.pl:830
4 Réponses :
Vous ne pouvez pas le faire en une étape, mais vous pouvez passer au fichier que vous souhaitez, puis définir un point d'arrêt sur une ligne spécifique:
DB<1> f C.pl 1 #!perl -w 2 # This is C.pl 3 # ... DB<2> b 830 DB<3> c
F code> ne semble pas fonctionner avec
Exiger code> dit que le fichier n'est pas chargé.
Vous devez charger un fichier avant de pouvoir définir un point d'arrêt à l'intérieur, bien que vous puissiez faire B Charger
Quand je fais ça, ça ne casse jamais du tout.
Que diriez-vous d'utiliser la commande C code> pour passer au-delà du
Exiger code> S, puis définissez un point d'arrêt. Par exemple
Après avoir entré dans le deuxième fichier, essayez de définir un point d'arrêt sur la ligne, cela me dit que cette ligne n'est pas cassable.
@Morinar: Vous ne pouvez définir que des points d'arrêt sur des lignes exécutables. Pour des déclarations multilignes qui signifie généralement la première ligne de l'expression.
La ligne que j'essaie de définir un point d'arrêt est une ligne unique si code> instruction. Je n'arrive pas à définir un point d'arrêt sur aucune ligne de ce fichier. Quelque chose ne va pas ici, mais je ne peux pas sembler comprendre quoi.
Vous pouvez également modifier c.pl ajoute ceci:
$DB::single = 1;
Cela devrait être $ dB :: simple = 1; Le seul point unique Il y a une syntaxe incorrecte pour répondre à cette variable.
Je préfère le truc bon marché de la commande 'R' (redémarrer) du débogueur. Voici un exemple de programme:
DB<6> c LWP::UserAgent::new(/Users/joemcmahon/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/LWP/UserAgent.pm:23): 23: Carp::croak("Options to LWP::UserAgent should be key/value pairs, not hash reference") 24: if ref($_[1]) eq 'HASH'; DB<6>
Je n'ai jamais pu comprendre cela. Aller accepter la réponse prospère juste pour que cette question ne soit pas laissée sans réponse.