|
Hey all
Something interesting happened to me today. I was trying to get a better
handle on Data Structures and parameters in ILE RPG, and I've cause the
compiler to abend in the most deeelightful way. Here's the code:
h nomain
d MAX_MSG c 200
d dsFuncPr_t ds
d count 5p 0
d array 10a dim(MAX_MSG)
dfunc pr 10a likeds(dsFuncPr_t)
pfunc b export
dfunc pi likeds(dsFuncPr_t)
d dsFuncPi ds likeds(dsFuncPr_t)
/Free
// Initialize last element used
count = 100;
// Initialize some array values
array( 1 ) = 'Blah, Blah';
array( 10 ) = 'Woof, Woof';
array( 100 ) = 'I am not a spud';
return dsFuncPi;
/End-Free
pfunc e
--------------
The idea is that the function func() returns a structure, containing two
values: the packed field count and the array array. I suspect there's a
superior way of doing this, but I have no idea what that might be.
Anyway, I compile the module as follows:
CRTRPGMOD MODULE(TESTMODULE)
SRCFILE(QRPGLESRC)
DBGVIEW(*NONE)
TGTRLS(V5R1M0)
And everything is OK. However, if I need to run the debugger, I need to
recompile.
When I change the compile command to:
CRTRPGMOD MODULE(TESTMODULE)
SRCFILE(QRPGLESRC)
DBGVIEW(*NONE)
TGTRLS(V5R1M0)
The following happens:
1. The compiler begins churning
2. A flurry of status query messages appear on line 24 of the display,
with the messages:
Query running.
Query running. Creating copy of file *N in *N
(note: this message flies by very quickly; probably not verbatim)
Query running. 1 records selected.
3. The status messages disappear, and the compilation ends with the
message
Compilation failed. Module TESTMODULE not created...
> crtrpgmod module(testmodule) srcfile(qrpglesrc) dbgview(*all)
tgtrls(V5r1m0)
Pointer not set for location referenced.
File QWXDUMP created in library QTEMP.
Member QWXDUMP added to file QWXDUMP in QTEMP.
File QWXDUMP in library QTEMP changed.
An error occurred during translation.
Problem log updated.
Output queue QSCAPAROQ in QSC9612752 already exists.
Compilation failed. Module TESTMODULE not created...
Looking at the compile listing, the code is syntactically correct, and
there are no RNFxxxx error messages. However, the following appears at the
end of the compile listing:
* * * * * E N D O F F I N A L S U M M A R Y * * * * *
C o d e G e n e r a t i o n M e s s a g e s
Error creating source debugger information.
An error occurred during translation.
* * * * * E N D O F C O D E G E N E R A T I O N M E S S A G E S
* * * * *
I took a closer look at the joblog messages, and the MCH3601 has the
following detail info:
Display Message Details
Message ID . . . . . . : MCH3601 Severity . . . . . . . : 40
Date sent . . . . . . : 10/24/02 Time sent . . . . . . :
15:35:20
Message type . . . . . : Escape
CCSID . . . . . . . . : 65535
From program . . . . . . . . . : QTESYMS
From library . . . . . . . . : QSYS
From module . . . . . . . . : TESYSPI
From procedure . . . . . . . : _TE_Add_Array_Type
From statement . . . . . . . : 27
To program . . . . . . . . . . : QTESYMS
To library . . . . . . . . . : QSYS
To module . . . . . . . . . : TESYSPI
To procedure . . . . . . . . : _TE_Add_Array_Type
To statement . . . . . . . . : 27
The QWXDUMP file has a lot of binary data, don't know how to read that.
The message "An error occurred in translation." has secondary level and
help text of:
Message ID . . . . . . : CWX9001 Severity . . . . . . . : 40
Message type . . . . . : Escape
Date sent . . . . . . : 10/24/02 Time sent . . . . . . :
16:19:17
Message . . . . : An error occurred during translation.
Cause . . . . . : An irrecoverable error has occurred during translation.
The reason code is 0001. See the previous messages listed in the joblog.
Recovery . . . : This error indicates that an internal compiler error
has
occurred. Contact your service representative.
And has message details of:
Message ID . . . . . . : CWX9001 Severity . . . . . . . : 40
Date sent . . . . . . : 10/24/02 Time sent . . . . . . :
16:19:17
Message type . . . . . : Escape
CCSID . . . . . . . . : 65535
>From program . . . . . . . . . : QWXCRTMD
From library . . . . . . . . : QSYS
From module . . . . . . . . : QWXCMSG
From procedure . . . . . . . : send_message
From statement . . . . . . . : 29
To program . . . . . . . . . . : QRN4CPP
To library . . . . . . . . . : QDEVTOOLS
To module . . . . . . . . . : GRP4CPP
To procedure . . . . . . . . : main
To statement . . . . . . . . : 588
Anyone run across this one before?
Thanks!
-Doc
-----------------------------------------
Ed Doxtator, Analyst
Baxter International Healthcare
1435 Lake Cook Road, LC II-3
Deerfield, IL 60015
Voice: 847-940-5680
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.