Mailing List Archive

Debugger support
After a minor modification of latest perl5db.pl it is possible to have
almost complete control of debugger from .perldb. The docs says:

# Example $rcfile: (delete leading hashes!)
#
# NonStop(1);
# LineInfo("db.out");
# sub afterinit { $trace = 1; }
#
# The script will run without human intervention, putting trace
# information into db.out. (If you interrupt it, you would better
# reset LineInfo to something "interactive"!)
#

What remains unaddressed is the possibility to redirect "long"
messages to handler. I cannot invent a general enough mechanism for
specifying what to do. Anyone ready to help?

Current implementation writes to fh sitting in $DB::OUT. It is no
problem to local($OUT) inside the printing part, what is missing is
not the code to handle output, but semantic and syntax of
declarations.

I want it to be general enough. Say, the LineInfo above was originally
put in perl5db.pl while waiting for Tom to use it for his 'vi in a
different window showing the current line'.

Ilya
Re: Debugger support [ In reply to ]
On Wed, 4 Oct 1995, Ilya Zakharevich wrote:

> What remains unaddressed is the possibility to redirect "long"
> messages to handler. I cannot invent a general enough mechanism for
> specifying what to do. Anyone ready to help?
>
> Current implementation writes to fh sitting in $DB::OUT. It is no
> problem to local($OUT) inside the printing part, what is missing is
> not the code to handle output, but semantic and syntax of
> declarations.
>
> I want it to be general enough. Say, the LineInfo above was originally
> put in perl5db.pl while waiting for Tom to use it for his 'vi in a
> different window showing the current line'.

Are we talking about a generic handler for arbitrary text, and not some
sort of file-surragate? If the former, how about my current favorite, a
global closure reference:

package DB;

$PrintHandler = sub {
print $DB::OUT @_;
};

package main;

sub mycode {
local($DB::PrintHandler) = sub {
$Curses::print "Danger, Will Robinson: \"@_\"\n";
};
#...
}

> Ilya

--
Kenneth Albanowski (kjahds@kjahds.com, CIS: 70705,126)
Re: Debugger support [ In reply to ]
Kenneth Albanowski writes:
>
> On Wed, 4 Oct 1995, Ilya Zakharevich wrote:
>
> > What remains unaddressed is the possibility to redirect "long"
> > messages to handler. I cannot invent a general enough mechanism for
> > specifying what to do. Anyone ready to help?
> >
> > Current implementation writes to fh sitting in $DB::OUT. It is no
> > problem to local($OUT) inside the printing part, what is missing is
> > not the code to handle output, but semantic and syntax of
> > declarations.
> >
> > I want it to be general enough. Say, the LineInfo above was originally
> > put in perl5db.pl while waiting for Tom to use it for his 'vi in a
> > different window showing the current line'.
>
> Are we talking about a generic handler for arbitrary text, and not some
> sort of file-surragate? If the former, how about my current favorite, a
> global closure reference:
>
> package DB;
>
> $PrintHandler = sub {
> print $DB::OUT @_;
> };
>
> package main;
>
> sub mycode {
> local($DB::PrintHandler) = sub {
> $Curses::print "Danger, Will Robinson: \"@_\"\n";
> };
> #...
> }
>

I'm not sure this answers what I meant. I was not interested so much
with what to do during printing, much more with whatever else one need
to do, like opening a pipe to |less after one presses `h', and closing
when showing the next prompt.

Ilya
Re: Debugger support [ In reply to ]
On Wed, 4 Oct 1995, Ilya Zakharevich wrote:

> > sub mycode {
> > local($DB::PrintHandler) = sub {
> > $Curses::print "Danger, Will Robinson: \"@_\"\n";
> > };
> > #...
> > }
> >
>
> I'm not sure this answers what I meant. I was not interested so much
> with what to do during printing, much more with whatever else one need
> to do, like opening a pipe to |less after one presses `h', and closing
> when showing the next prompt.

Can't you expand this to cover all the fields you need? $DB::PageData,
$DB::PrintStatus, etc.?

> Ilya

--
Kenneth Albanowski (kjahds@kjahds.com, CIS: 70705,126)
Re: Debugger support [ In reply to ]
On Wed, 4 Oct 1995, Tom Christiansen wrote:

> Um, isn't there an extra dollar below?

Why, haven't you heard about the latest addition to Perl? Yup, now we
have call-by-reference, so we don't need any more of those sloppy
subroutine definitions. Just assign all your subs to global variables,
that's what I say. Closures were good enough for LISP, they are good
enough for perl.

(The previous was a joke. It does not at this time accurately represent
Perl as we know it. Please do not base important decisions on the
aformentiond humour.)

Or, in other words, yes, that's an extra dollar sign. One of these days
I'm going to start feeding my outgoing mail through perl -wc...

> --tom

> > sub mycode {
> > local($DB::PrintHandler) = sub {
> > $Curses::print "Danger, Will Robinson: \"@_\"\n";
> ^
> ^
> ^
> ^
> ^ what's this?

--
Kenneth Albanowski (kjahds@kjahds.com, CIS: 70705,126)
Re: Debugger support [ In reply to ]
Kenneth Albanowski writes:
>
> On Wed, 4 Oct 1995, Ilya Zakharevich wrote:
>
> > > sub mycode {
> > > local($DB::PrintHandler) = sub {
> > > $Curses::print "Danger, Will Robinson: \"@_\"\n";
> > > };
> > > #...
> > > }
> > >
> >
> > I'm not sure this answers what I meant. I was not interested so much
> > with what to do during printing, much more with whatever else one need
> > to do, like opening a pipe to |less after one presses `h', and closing
> > when showing the next prompt.
>
> Can't you expand this to cover all the fields you need? $DB::PageData,
> $DB::PrintStatus, etc.?
>
> > Ilya
>
> --
> Kenneth Albanowski (kjahds@kjahds.com, CIS: 70705,126)
>
>

There is no problem with outputting the data, it goes out OK with
current perl5db. The question is
How can the user describe an alternative channel for "long" data?

The stupid solution is to use
$Channel = Channel->Init
$Channel->Open
$Channel->Close
$Channel->Print
$Channel->deInit

(with init/deinit called when channel is changed, and Open/Close when
it is needed for long output), I just hope there is a better way (with
less user intervention).

Note that Open/Close should be void in the case of file output, and
Init/Deinit mostly void in the case of opening pipe to |less for each
long output.

Ilya
Re: Debugger support [ In reply to ]
On Thu, 5 Oct 1995, Ilya Zakharevich wrote:

>
> There is no problem with outputting the data, it goes out OK with
> current perl5db. The question is
> How can the user describe an alternative channel for "long" data?
>
> The stupid solution is to use
> $Channel = Channel->Init
> $Channel->Open
> $Channel->Close
> $Channel->Print
> $Channel->deInit

In how many different places, and for what purposes is "long" data output
by perl5db? Perhaps you only really need to distinguish between single
lines and massive amounts. For massive amounts, then yes, I suppose you
could use the stupid little object scheme as above. Or use a closure, with
the first argument being "init", "open", "close", etc. Or use a list of
subroutine references, or use a tied scalar, or... but these are all just
different ways of doing the same thing.

How are you going to deal with people tying into other parts of perl5db?
TkPerl comes immediately to mind here.




> Ilya

--
Kenneth Albanowski (kjahds@kjahds.com, CIS: 70705,126)
Re: Debugger support [ In reply to ]
Um, isn't there an extra dollar below?
--tom

> Are we talking about a generic handler for arbitrary text, and not some
> sort of file-surragate? If the former, how about my current favorite, a
> global closure reference:

> package DB;

> $PrintHandler = sub {
> print $DB::OUT @_;
> };

> package main;

> sub mycode {
> local($DB::PrintHandler) = sub {
> $Curses::print "Danger, Will Robinson: \"@_\"\n";
^
^
^
^
^ what's this?


> };
> #...
> }
Re: Debugger support [ In reply to ]
Excerpts from the mail message of Ilya Zakharevich:
)
) I'm not sure this answers what I meant. I was not interested so much
) with what to do during printing, much more with whatever else one need
) to do, like opening a pipe to |less after one presses `h', and closing
) when showing the next prompt.

What I did before was quite simple:

DB<1> $DB::pager="less"
DB<2> h
[lots of output scrolls off the screen]
DB<2> |h
[lots of output piped through "less"]
DB<2> |X
[lots of output piped through "less"]
DB<2> |p join("\n",@hugearray)
[lots of output piped through "less"]

In other words, a leading "|" caused a pipe to the $DB::pager
command to be opened (defaults to $ENV{PAGER} or "more" or "pg" if
"more" not found) and the DB::OUT file handle to be assigned to
that pipe. The debugger command was handled as normal after the
"|" was stripped. At the end of the command the pipe was closed
and DB::OUT was reassigned back to its previous value.

I would also use it for things like this:

DB<1> $DB::pager="cat -vet"
DB<2> |p "(",pack($fmt,@fields),")\n"
DB<3> |select(DB::out); foreach(@fields){print &process($_),"\n";}

I can dig up the old code for this.

I'd also still like my enhancement of having

!cmd

do what can most succinctly be described as:

system("cmd >DB::OUT 2>&1 <DB::IN")
--
Tye McQueen tye@metronet.com || tye@doober.usu.edu
Nothing is obvious unless you are overlooking something
http://www.metronet.com/~tye/ (scripts, links, nothing fancy)
Re: Debugger support [ In reply to ]
Ilya,

Here is a patch for your fine perl5db.pl v0.9 that I FTPed a
couple of days ago. I didn't address supporting different
open/close/init/etc. routines at this point. However, I found
your "O" command extremely useful, to the point that I think
this patch is very useful and not at all a kludge. I've copied
the list in case others are interested.

Feel free to reject any of these changes. I tried to adopt your
style, but my rather strange style probably seeped through in a
few places. Let me know how it works under OS/2.

Here are descriptions of most of the changes I made:
Gives credit to Ilya, shows where to FTP new versions.
Shows the release of perl5db.pl (was 0.9, now 0.91).
"|dbcmd" runs "dbcmd" but sends DB::OUT to "pager" command or file.
"!!cmd" runs "cmd" in a subprocess (see ShellBang option).
"!cmd" runs "$ENV{SHELL} -c 'cmd'" (if ShellBang and RecallCommand differ).
"!pattern" added to help message (recalls last command starting w/ pattern).
Can change "!-N" command recall to ".-N", etc. (see RecallCommand option).
Try open(IN,"+<$console") and open(OUT,"+>$console") first so UnixWare "more"
doesn't croak when trying to read from STDOUT!!
The help text varies slightly when RecallCommand or ShellBang is changed.
"O" command enhancements:
Setting an option ignores case of option names.
Options names like "wordOneTwo" changed to "WordOneTwo" for consistancy.
When showing option values, lines up the "="s.
New opt, RecallCommand, changes char for commands recall (def="!").
New opt, ShellBang, changes char to run command in subshell (def="!").
New opt, Pager, where to write DB::OUT when "|" used: $ENV{PAGER}||"|more".
Can put whitespace in option values: `O pager"pg -n"', `O pager(cat -vet)'.
"O option?" shows value of just one option.
Echo option name and new option value whenever user changes an option.
Invalid "O" command in $ENV{PERLDB_OPTS} now writes an error to
STDERR not "Can't use an undefined value as a symbol reference"

For simple cases, CTRL-C and "q" work nicely. For other cases
the debugger just exits, but I've added code that I believe
will correct this on perls that have your patch applied (which
I haven't done yet). You could try:

DB<1> |while(1){print DB::OUT ++$n,"\n"}
[...]
CTRL-C

to see if I got it right (probably not but I'll look at it later).

Please let me know if I can be of any further help.
--
Tye McQueen tye@metronet.com || tye@doober.usu.edu
Nothing is obvious unless you are overlooking something
http://www.metronet.com/~tye/ (scripts, links, nothing fancy)

begin 0 perl5db.patch.gz
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
4IE-H[-+$-3S=^^$_!<]YSLU-``#6
`
end
Re: Debugger support [ In reply to ]
Tye McQueen writes:
>
> Ilya,
>
> Here is a patch for your fine perl5db.pl v0.9 that I FTPed a
> couple of days ago. I didn't address supporting different
> open/close/init/etc. routines at this point. However, I found
> your "O" command extremely useful, to the point that I think
> this patch is very useful and not at all a kludge. I've copied
> the list in case others are interested.
>
> Feel free to reject any of these changes. I tried to adopt your
> style, but my rather strange style probably seeped through in a
> few places. Let me know how it works under OS/2.
>

Our edits intersected so much that patch did not work :-(. I inserted
most of what you did, but the upcasing of switches. Since switches
accept abbreviations, this would reduce number of one-letter
contractions in half.

Available on ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl.

Ilya

PS Consider this as beta, since I did not read all the code changes.
Re: Debugger support [ In reply to ]
Excerpts from the mail message of Ilya Zakharevich:
) Available on ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl.

"Permission denied" (-rw-------).

) PS Consider this as beta, since I did not read all the code changes.

No problem. I'll try to send a follow-up patch if needed
rather quickly so that colliding changes will be less likely.

) Our edits intersected so much that patch did not work :-(. I inserted
) most of what you did, but the upcasing of switches. Since switches
) accept abbreviations, this would reduce number of one-letter
) contractions in half.

Okay. I thought I was missing something about the choice of case.
I'll let "O" ignore case only if there are no exact-case matches,
if that sounds OK to you.
--
Tye McQueen tye@metronet.com || tye@doober.usu.edu
Nothing is obvious unless you are overlooking something
http://www.metronet.com/~tye/ (scripts, links, nothing fancy)
Re: Debugger support [ In reply to ]
Tye McQueen writes:
> ) Available on ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl.
>
> "Permission denied" (-rw-------).
>

Corrected.

Ilya