To add to Lance' post, et al.
If you are seeing the source in debug, it is located in 1 of a couple
useful places - either in a source member or in a listing that is stored
in the program object.
Since it is ILE COBOL, do a DSPPGM DETAIL(*MODULE), then take a 5 opt on
the module to see where the source is SUPPOSED to be.
If the program was created with DBGVIEW(*SOURCE) there will be a
reference to the source member in the program object. If DBGVIEW(*LIST)
there will be a compile listing in the program object, as I mentioned
above. If DBGVIEW(*ALL), both will be there.
To see what you have, you can use DMPOBJ - this puts a dump of the
program into a spooled file. I just went looking for the markers - open
the spooled file and put DESCRIPT in the search field - case matters -
F16 takes you through the various instances. You really want VIEW
DESCRIPTOR, but you get only 32 characters at a time, and any word can
be split. No guarantee about DESCRIPT, so try other substrings if that
doesn't show up.
One descriptor is related to the location of the source member it thinks
the source is in. Others include listings of various types.
You CAN - I HAVE - copy the whole spooled file to a text file on your PC
and do lots of copy/paste/cleanup. I like Rob's idea a lot better, to
use the graphical debugger display to copy/paste the whole thing -
Good luck - this is just TOO much fun, isn't it?
On 3/7/2012 4:39 PM, Dan Rasch wrote:
We have some production programs that are missing the current source.
We actually have an old version of the source, but know it is wrong, which is obvious when we put it in debug.
My question is this. If I can see it in debug, does the source exist somewhere and I cannot find it?
This is ILE COBOL, and looks fine in debug. The author(s) were relieved of their duties at least a year ago.
The typical naming conventions for source were not followed.
While in debug, can the location of the source be displayed/retrieved?
Thanks in advance,
- Dan Rasch