Diagnostic options tighten the feedback loop between your source and the compiler's understanding of it. They include DEBUG FLDCHK for deeper field reference scrutiny, SORT message levels that expose why a presort failed, PARM SYNTAX for quick validation passes, and MSG-related controls routing severity to console or printer on some configurations. Embedded listing markers—dollar sign for critical errors, plus for warnings—point at tokens the syntax checker rejects. Beginners staring at return code 8 from compile JCL need a systematic read: scroll listing for first dollar marker, fix that line, recompile rather than fixing line 500 before line 40 error. Runtime diagnostics—FILE-STATUS, SORTMSG output, Error Analysis after abend—extend beyond this page's compile focus but share PARM DNA. This tutorial catalogs diagnostic PARM parameters, reading compile messages, SYNTAX versus full compile workflow, FLDCHK trade-offs, SORT(MSG) levels, compile summary interpretation, pairing with compiler warnings index, and escalation data for Broadcom support cases.
FLDCHK requests additional field checking during compilation—catching some invalid field references or inconsistent usage earlier than default checks. NOFLDCHK suppresses when site default enables FLDCHK but you need faster compile on unchanged legacy member. Trade-off: skipping FLDCHK on sloppy maintenance window may let latent errors reach runtime FILE-STATUS failures instead of compile time.
| Marker | Severity | Typical action |
|---|---|---|
| $ | Critical error | Fix before execute; object may be invalid |
| + | Warning | Review; may indicate future error or deprecated syntax |
| Message number | Varies by code | Cross-check error messages index |
Marker appears near column of suspected token—not always exact line if continuation involved. Read full message text; Broadcom message numbers map to documentation for explanation and recommended fix.
SYNTAX on compile PARM validates structure without full production of executable in typical workflows—ideal after large search-replace across Library. Saves CPU when thirty errors exist; first SYNTAX pass may surface all undefined field names before waiting for code generation. Follow with full compile once dollar markers cleared.
12345678910//COMPILE EXEC PGM=EZTPA00 //SYSIN DD * PARM SYNTAX FILE TESTFILE FB(80 800) BAD-FIELD 1 5 N JOB INPUT TESTFILE IF UNDEFINED-FIELD GT 0 DISPLAY 'test' END-IF STOP
SORT(MSG(ALL)) on PARM increases sort-related message visibility during execution—valuable when SELECT presort or SORT activity fails on volume or key definition. Contrast with SORT silent production settings. Messages may appear on SYSPRINT referencing sort work datasets, key fields, or insufficient space—pair with JCL SORTWK allocation review.
PARM MSG subparameters on some releases route critical or default messages to console or printer—primarily installation-dependent. Document site policy; developers on shared test LPAR may not have authority to change MSG routing. Critical messages during compile still embed in listing regardless of console routing.
When LIST PARM active, summary totals errors and warnings separately. Zero errors with warnings may still allow execute but warrants cleanup—warnings sometimes flag migration reserved word collisions impending in next release. Non-zero errors mean do not schedule load module until resolved unless emergency override process exists—which mature shops avoid.
Compile diagnostics: syntax, undefined symbols, invalid statement combinations, FLDCHK hits. Runtime diagnostics: FILE-STATUS on GET, invalid packed data S0C7, SORT failures, abend analysis. PARM DEBUG STATE and FLOW help runtime; FLDCHK helps compile. DISPLAY bridges to programmer-driven runtime inspection.
Diagnostic options are spell-check and grammar-check for your Easytrieve homework. FLDCHK is extra strict checking. Dollar marks mean wrong answer must fix; plus marks mean suspicious sentence might be okay. SYNTAX is quick check without printing whole final essay. Read fixes from top of teacher's marks, not bottom.
1. DEBUG FLDCHK enables:
2. In compile listing a $ marker typically indicates:
3. PARM SYNTAX mode:
4. SORT(MSG(ALL)) on PARM:
5. Compile summary error counts help you: