Craig A. Berry wrote:
At 12:03 PM -0500 11/24/06, John E. Malmberg wrote:

In configure.com, vms/descrip.mms_template, vms/vms.c:

Add the smoke and mirrors to make the perl5db.pl xterm create
request  create a decterm for debugging.

Interesting.  I have a couple of questions but this looks very
promising.  I'm a little surprised to see us intercepting popen().
If, as the comment says, we're trapping "3>&1 xterm" and "tty 1>&3",
then I would think we'd want to do so and create the xterm in the
child via getredirection(), which is where we do 2>&1 processing and
other home-grown command-line piping activities.  I might be wrong on
that, but I'd like to know why.

The xterm (DECTerm) can not be created in a child process, as it will self destruct on child exit. No tty command to return it's name either.

So no child processes are being created on OpenVMS.

perl5db.pl only makes one read on that file handle to read the name of the created device.

This hack skips a lot of overhead in the safe_popen() sets up for handling pipes from a subprocess.


In lib/perl5db.pl:

OpenVMS needs to have the $term structure exist and be filled out
for  sub TTY to work. I put the needed special case code in sub TTY, but
there may be a better place to put it.


I've tested this part and it doesn't have the effect I expected.
Specifically, when I run lib/perl5db.t, it still ignores the call to
TTY and runs interactively.  Is this what you thought you were
fixing, or have I misunderstood?

I have not been trying to fix lib/perl5db.t specifically. I am fixing the case where debugger output either overwrites the program data, or is somehow inhibited by the program.

The $term structure needs to exist in order for the debugger I/O to be redirected to the xterm.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to