[bcn-pm] sobre $DB::single i perl debugger

Alex Muntada alexm a alexm.org
dic nov 5 15:56:55 PST 2008


* Albert Vilella <avilella a gmail.com>:

> Una pregunta sobre $DB::single i el debugger de perl.
> Si afegeixo una linia en el meu codi com:
>
> $DB::single=1;1;
>
> Puc aturar el debugger quan corre amb "perl -d".

No ho sabia. És molt interessant això, m'has tingut una bona estona
distret avui :-)

> Una vegada el debugger s'ha aturat en la linia, es pot desactivar
> el breakpoint d'alguna manera sense eliminar la linia i reiniciar el
> debugger?

Amb «$DB::single = 1» no pots canviar-ho. Però remenant per google
he anat a petar a un article del diari d'en shwern que explica que
$DB::single també admet expressions. Així el que tu necessites és:

  my $stop = 1;
  $DB::single = $stop;

I quan ets dins el debugger, quan ja no vulguis aturar-te més només
et cal dir-li això al debugger:

  $stop = 0

Aleshores ja pots continuar l'execució de forma normal.

L'article d'en schwern (Data::Dump::Streamer + $DB::single):
http://use.perl.org/~schwern/journal/35427

-- 
Alex Muntada <alexm a alexm.org>
http://alexm.org/


Més informació sobre la llista de correu Barcelona-pm