Some of you out there using Win32, the Activestate Perl Dev Kit comes with
an excellent Perl Debugger.  It does allow you to step into and out of
functions, watch variables for changes, etc.

-----Original Message-----
From: drieux
To: begin begin
Sent: 6/22/02 4:18 PM
Subject: Re: Simulate `sh -x'


On Saturday, June 22, 2002, at 11:15 , David T-G wrote:
> ...and then Peter Scott said...
> %
> % At 09:37 AM 6/22/02 -0700, drieux wrote:
> ...
> % >that is in essence the Shell Debugger.
> % >
> % >Which really is not a 'realDebugger[tm]' because it really
> ...
> %
> % Eh?  The n and s commands do exactly that.  See also the r command.
>
> He didn't mean the perl debgger; he meant sh -x :-)

thank you - I'm sorry if it was not clear that one of
the limitations of the traditional

        sh -x MyScript.sh

is that about all you get is a 'trace' of what is going on -
which doesn't allow you to step through or over functions so
as to localize where an error may be occuring.

[..]
> % Tracing isn't generally as useful for a Perl script as for a shell
> % script because a shell script typically executes far fewer
statements
> % than the average Perl script.  So the output can be unreasonably 
> verbose.
>
> Yeah.  What we really want is a command or flag that does exactly what
-x
> does :-)  I forget whether or not -x stays on when you jump into a 
> function,
> but it would be nice to be able to watch perl do its thing and how it
sees
> the vars that it's testing (in sh you get to see

in traditional /bin/sh it will walk into the function....

appended at the end is a case in point.

But unlike perl - there is no easy way to notice perse that one is
actually IN a function in a Shell Library - nor for that matter to
track down through what the Shell Library function does once it has
to invoke external code - which in this case is a perl script....

So While - Yes, that is a real Live Shell Library of functions, and
Yes, those are three "globals" that get defined in there = that you
see getting defined as we set the foo_g variables - I would not
recommend that strategy to anyone who can write Perl Code.

ciao
drieux

---
vladimir: 57:] cat !$
cat ScaryCode.sh
#!/bin/sh

LIB="/net/gax/home/drieux/lib/mt_lib/dnlLib"
if [ -f $LIB ]
then
         . $LIB
else
         echo "unable to find our Library"
         exit 7
fi
# one of the functions in that /bin/sh library
DNL_match_token_to_ip_for_list "Frodo" "wetware gax bopper"

exit
vladimir: 58:] sh -x ScaryCode.sh
LIB=/net/gax/home/drieux/lib/mt_lib/dnlLib
+ [ -f /net/gax/home/drieux/lib/mt_lib/dnlLib ]
+ . /net/gax/home/drieux/lib/mt_lib/dnlLib
dnl_switching_g=SW_SERV|DC_SERV
dnl_billing_g=FP_SERV|DB_SERV
dnl_services_g=SW_SERV|DC_SERV|FP_SERV|DB_SERV
+ DNL_match_token_to_ip_for_list Frodo wetware gax bopper
TOKEN=Frodo
LIST=wetware gax bopper
+ echo wetware gax bopper
+ get_ip wetware
ipaddr=199.108.16.1
+ echo Frodo 199.108.16.1
Frodo 199.108.16.1
+ get_ip gax
ipaddr=199.108.16.8
+ echo Frodo 199.108.16.8
Frodo 199.108.16.8
+ get_ip bopper
ipaddr=199.108.16.4
+ echo Frodo 199.108.16.4
Frodo 199.108.16.4
+ exit
vladimir: 59:]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to