Debugging options in Easytrieve live primarily on the PARM statement—the first line of source when present—and in site defaults from the Options Table. They split into two families beginners must not confuse: compile-time DEBUG flags that expand listings with maps and cross-references, and runtime ABEXIT and FLOW settings that change what happens when the program abends or when you need execution path visibility. A payroll developer fixing S0C7 packed decimal corruption wants DEBUG DMAP to verify field offsets in the listing and ABEXIT SNAP in test to inspect registers at failure. The same developer promoting to nightly production removes SNAP and often FLOW to avoid dump allocation and CPU overhead. Broadcom best practices and support article 55089 document combinations Technical Support requests when you open a case. This page explains each DEBUG subparameter, ABEXIT SNAP versus NOSNAP versus NO, FLOWSIZ table sizing, FLDCHK field checking, interaction with DISPLAY and tracing, development versus production policy, and how debugging options connect to compiler listings and dump analysis workflows.
DEBUG groups optional diagnostic sections into the compile listing and enables runtime facilities. Each subparameter can often be negated with NO prefix—NODMAP suppresses data map when site default would otherwise print it. Override site Options Table values per program by coding PARM first in source.
| Option | Compile effect | Runtime effect |
|---|---|---|
| PMAP / NOPMAP | Program map listing | Structure reference for maintainers |
| DMAP / NODMAP | Data map—offsets, types, files | Validates DEFINE layout assumptions |
| XREF / NOXREF | Symbol cross-reference | Indirect—finds bad references at compile |
| STATE / NOSTATE | State-related compile support | Statement number at abend |
| FLOW / NOFLOW | Flow table setup | Recent stmt numbers on failure |
| FLDCHK / NOFLDCHK | Extra field checking | Catches some invalid references earlier |
Broadcom best practices and support guidance converge on a verbose test compile while troubleshooting. LIST ON MACROS preserves macro expansion visibility. DEBUG with PMAP, DMAP, STATE, and XREF LONG maximizes listing utility. ABEXIT NO avoids snap dump volume when you are fixing source logic rather than analyzing bad data at failure instant. SORT(MSG(ALL)) surfaces sort diagnostics. LIST FILE routes listing sections appropriately on releases that support it.
123LIST ON MACROS PARM DEBUG(PMAP DMAP STATE XREF LONG) ABEXIT NO SORT(MSG(ALL)) + LIST FILE
ABEXIT controls abnormal termination processing at execution time—not compile time. SNAP produces formatted dump output useful when a data exception leaves you asking which packed field was invalid. NOSNAP still handles abend but suppresses snap formatting per manual rules. NO minimizes abexit intervention—Broadcom suggests NO when debugging source logic problems rather than inspecting failure-time data. Production schedules often inherit ABEXIT NO from Options Table to prevent accidental dump storms on recurring batch.
Reproduce S0C7 or similar with minimal input file. Compile with ABEXIT SNAP. Compare dump registers and flow output with DMAP offsets for suspect arithmetic fields. Once root cause fixed, recompile with production ABEXIT before promotion sign-off.
FLOW maintains rolling statement number history. When abend processing runs, flow tables help narrow which section executed recently—valuable in large programs with many PROC copies. FLOWSIZ sets table entry count—larger tables consume memory but retain longer history. Balance FLOWSIZ against REGION and below-the-line storage on AMODE31 programs with many buffered files.
1PARM LINK(PAYAUD) ABEXIT(SNAP) DEBUG(STATE,FLOW) FLOWSIZ(20)
DEBUG options are product-controlled diagnostics tied to compile and abend infrastructure. DISPLAY is explicit application logging you write. Tracing DD dummies and external tools (Abend-Aid, Fault Analyzer) sit outside PARM—coordinate so multiple dumps do not fire on same failure. Best practices list DD DUMMY examples to disable competing products during Easytrieve-native debug sessions.
Configuration Manager sets compile-time defaults for DMAP, XREF, PMAP, and related listing flags. PARM on individual programs overrides for one compile. Document which defaults your shop uses in development versus production compile procs so contractors do not accidentally ship DEBUG FLOW load modules to production JCL.
Debugging options are extra pages the compiler adds to your instruction manual and extra helpers that turn on when the program crashes. DMAP draws a picture of where each box of data sits. FLOW remembers which lines you recently ran. SNAP takes a photo when something breaks badly. For real homework turned in every night you use a thin manual without photos; while fixing mistakes you ask for all the extra pages.
1. PARM DEBUG DMAP requests:
2. DEBUG FLOW helps debugging by:
3. ABEXIT SNAP is best suited for:
4. DEBUG STATE records:
5. Development debug PARM should be removed or reduced: