× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



JT,

>| The times I have used it and needed to debug, single stepping
>| works for me.

>Not as good.

Works for me.  But then what is wrong with using an INFDS (which I often include
anyway) and displaying the value of the *STATUS field?

>I think Joe's saying that the %BIF is less effective than an indicator.
>
>I would think it WOULD take only a couple hours.  They change the
>implementation of the %BIF to us a memory location instead of a register, if
>it's not already that way.

I don't know how it is implemented, but I wouldn't expect it to be in a register
since you can have lots of intermediate statements between the I/O and the BIF.

I suspect a %BIF() with a named file gets the information from the INFDS for
that file (which exists even if you don't name it to make it available to your
program).

I don't know how they implement the BIF without a filename specified.  I suspect
there is some location which gets updated with the last filename accessed. and a
BIF with no name uses this location to decide what INFDS to examine.

But that is all SWAG on my part and could be completely off base.

>You allow both the language and the debugger:  EVAL %BIF = *ON.

Huh?  Why in the world would you want a debugger to SET the return value of a
function?  Only a function should be able to do that...

>If these
>are already stored in memory locations (ie variables) then it's just a
>matter of assigning a value to a named variable.

I haven't tried it, but perhaps you could change the contents of the INFDS and
the BIF would report the new value.  But even if it works, I'm not convinced
this is a good debugging technique.

If you are trying to change the result of an I/O operation to modify program
flow for testing, you are not getting a real-life test anyway because data
fields have been altered.  Far better in my book to use more complete bed of
test data with the extremes and abnormal database conditions so the code gets
executed as a natural process during testing.

>I'll be glad to stand corrected.  But I'd still like to see this fixed.

This must fall in the category of "If it ain't broke, fix it 'till it is!"

I don't see the debugger as broke just because it can't return the result of a
function, nor set the value which will later get returned by a function.  All
you need to do is look at your debugging a little different, and use single-step
mode and/or the INFDS to determine the success of an I/O operation.

What is so hard about that?

Doug



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.