The following list contains suggestions to help you rule out some
common sources of problems.
- Check that the program has not changed since you last compiled
or executed it successfully. If it has, examine the changes. If the
error occurs in the changed code and you cannot correct it, note the
change that caused the error. Whenever possible, you should retain
copies of both the original and the changed source programs.
- Be sure to correct all problems that are diagnosed
by error messages, and ensure that the messages that were previously
generated have no correlation to the current problem. Be sure to pay
attention to warning messages.
- The message prefix can identify the system or subsystem that issued
the message. This can help you determine the cause of the problem.
Following are some of the prefixes and their origins.
- CCN - indicates messages from the z/OS® XL C/C++ compiler, its utility
components, or the z/OS XL C/C++ IPA link step. Information on the messages
is found in z/OS XL C/C++ Messages.
- EDC - a numeric portion between 0090 and 0096 indicates a severe
error, and the solution should be self-evident from the accompanying
text. If it is not, contact your Service Representative. If the numeric
portion is in the 4000 series, this specifically relates to the prelinker
and alias utility. Otherwise, the message relates to the z/OS XL C/C++-specific
messages from the runtime environment. Information on Language Environment® messages
is found in z/OS Language Environment Runtime Messages.
- CEE - for language-independent messages from the common execution
environment (CEE) Language Environment library component. Information on Language Environment messages
is found in z/OS Language Environment Runtime Messages.
- IBM, PLI, IGZ - for language-specific Language Environment messages. Information
on Language Environment messages
is found in z/OS Language Environment Runtime Messages.
- CLB - for messages that relate to z/OS class libraries. See z/OS XL C/C++ Messages for
more information.
- BPX - messages that relate to z/OS UNIX System
Services.
- FSUM - messages for the c89 and xlc utilities.
You can cross reference the prefix to the message document
in most cases by using the table at the beginning of the z/OS MVS™ System Messages volumes which accompany the z/OS operating
system.
- Ensure that you are compiling the correct version of the source
code. It is possible that you have incorrectly indicated the location
of your source file. For example, check your high-level qualifiers.
- In any program failure, keep a record of the conditions and options
in effect at the time the problem occurred. The listing file shows
the options. To get the listing, compile with the SOURCE option. The
listing only contains options that appear after the command line is
processed, hence C #pragma options do
not appear.
Information about some of the options appears as a
comment at the end of the object file. For both C or C++ compiles,
there is always a comment showing the OPTIMIZE level. For C compiles,
information about some of the options (for example, ALIAS, GONUMBER,
INLINE, RENT, or UPCONV options) is included only if you specify
the option when you compile. Note any changes from the previous compilation.
- Your installation may have received an IBM® Program Temporary Fix (PTF) for the problem.
Verify that you have received all issued PTFs and have installed them,
so that your installation is at the current maintenance level. Specifying
the compiler option PHASEID when doing a compile provides information
about the maintenance level of each compiler component (phase).
- The preventive service planning (PSP) bucket, which is an online
database available to IBM customers through IBM service channels.
It gives information about product installation problems and other
problems. See the z/OS Program Directory for more details.
- Use the Debug Tool, dbx (for z/OS UNIX System
Services) or some other debugging aid
to determine the statement where the program fails and possible causes
of the failure.
- If a failing application is communicating with other IBM products,
make sure that it uses the correct interface procedure as documented
in z/OS XL C/C++ Programming Guide. In many cases, you can localize the
failing condition by taking out the function calls or making them
no-ops.
- If your application has been developed on a different platform
(such as a microcomputer or workstation) and you try to compile and
run using the z/OS XL C/C++ compiler, the following may cause problems:
- The source code does not support the applicable following standards:
- ISO C Standard
- ISO C++ Standard
- The source code includes dependencies on the ASCII character set
or uses the long double data type in the IEEE floating-point format. You
need the ASCII compiler option to process the ASCII characters, and
you need the FLOAT(IEEE) option to process IEEE floating-point data
types. Note that the IEEE long double data types may have different
sizes on a different platform.
- The source code is system dependent
- If your application was prelinked, make sure that the prelinking
was successful as indicated in Prelinking and linking z/OS XL C/C++ programs.