× 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.



Jon,

I'm well aware that using DBGVIEW(*SOURCE) doesn't include the source in the
program object - it simply includes certain bits of debug-required
information and identifies where the relevant source member resides.

However, using DBGVIEW(*LIST) (or DBGVIEW(*ALL), for that matter) goes
against everything that Aaron (like me) is trying to do - to make his
production objects (which he ships to *external* customers) more secure. By
using either of these options, you're shipping the object source in the
object, which totally defeats his specified purpose of trying to secure his
objects.

Frankly, using the source change date/time from the object to ensure you're
using the correct source member when you're debugging on your development
box seems to work just fine, and it ensures that ones customers never see
"behind the curtain"... On rare occasions we (temporarily) make a source
member available to a customer so we (or they) can debug a program on their
machine, but those cases are *very* rare indeed.

Obviously there are both good and bad results from using *LIST/*ALL instead
of *SOURCE, but in this context, using *SOURCE seems to be the way to go.
That, and using a decent internal system to ensure that source members
aren't changed post-compilation, of course :-)

Rory

p.s. Frankly, there are two changes I would like to see with the debugger (I
know they're not there in the green-screen debugger, but perhaps they are in
the GUI version):

1. The ability, when using DBGVIEW(*SOURCE) to override the debugger and
tell it where the source *really* is - this is a huge hassle if a source
library has changed its name.

2. The ability to use DBGVIEW(*LIST) and include an *encrypted* copy of the
source in the *PGM object. That way, you get the best of both worlds - the
source stays with the object, but it's not available to the end user without
a password.


On 1/9/07, Jon Paris <Jon.Paris@xxxxxxxxxxxxxx> wrote:

>> I just use DBGVIEW(*SOURCE)

Not a good idea if you _really_ want to be sure you are debugging the same
program.  Contrary to popular belief, *SOURCE does NOT incorporate a copy
of
the source in the PGM object.  You need *LIST to be certain since the
source
may have changed since compilation (and might not even be on the
production
machine).


Jon Paris
Partner400

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.