2011-06-21 16 views
9

Pracuję trochę z lib ReadLine i lib Perl Readline.Czy debugger Perla może zapisać historię ReadLine w pliku?

Jednak debugger Perla odmawia zapisania historii wiersza poleceń sesji.

Dlatego za każdym razem, gdy przywołuję debuggera, tracę całą moją poprzednią historię.

Czy ktoś wie, w jaki sposób zapisać debugger Perla i, mam nadzieję, dołączyć historię sesji podobną do bashu HISTORYFILE?

Odpowiedz

9

The Way I zrobić to poprzez następującą linię w moim ~/.perldb pliku:

&parse_options("HistFile=$ENV{HOME}/.perldb.hist");

komendy debuggera są następnie przechowywane w ~/.perldb.hist i dostępne w różnych sesjach.

6

Dodaj parse_options("TTY=/dev/stdin ReadLine=0"); do .perldb, a następnie:

rlwrap -H .perl_history perl -d ... 
+1

@bitbucket: W przeszłości miałem wystarczająco dużo problemów, dzięki czemu wbudowałem obsługę readline, która już mi nie przeszkadza :) – ysth

+0

Co robi tu ReadLine = 0 ?, jeśli false, manekin ReadLine jest używana, więc możesz debugować aplikacje ReadLine. ", Jego dokument nie ma dla mnie większego sensu ... –

+0

zapobiega używaniu readbla, nawet jeśli zainstalowane są odpowiednie moduły; przydatne w przypadku, gdy program, który sam debagujesz, próbuje użyć readline, co może być sprzeczne (lub jak w tym przypadku, gdy używasz zewnętrznej readline). – ysth

2
$ export PERLDB_OPTS=HistFile=$HOME/.perldb.history 
1

Zrobiłem następujące:

1) Utworzona ~/.perldb, który nie istniał wcześniej.

2) Dodano &parse_options("HistFile=$ENV{HOME}/.perldb.hist"); z odpowiedzi miroda.

3) Dodano export PERLDB_OPTS=HistFile=$HOME/.perldb.history do ~/.bashrc z odpowiedzi mephineta.

4) Ran source .bashrc

5) Ran perl -d my program.pl i dostał to ostrzeżenie/błąd

perldb: Must not source insecure rcfile /home/ics/.perldb. 
     You or the superuser must be the owner, and it must not 
     be writable by anyone but its owner. 

6) Ja chroniony ~/.perldb z właścicielem RW chmod 700 ~/.perldb, a błąd odszedł.

Powiązane problemy