Limitations of the DFHMSCAN program
The DFHMSCAN program:
- Can scan only one load module for each invocation.
- Does not scan CICS® modules and tables in the load library.
- Does not separately identify CHECK macros.
- Cannot identify certain forms of the DFHBIF macro that do not produce a BALR, or that produce code indistinguishable from that generated by EXEC CICS commands.
- Cannot, with certainty, find all EXEC CICS commands for COBOL and PL/I, because the code depends so much on the compiler. Those EXEC CICS commands not flagged by the “EXEC CICS, EXEC DLI, DLI CALL OR DFHBIF DETECTED” message are listed as “BALR 14,15 FOUND - NO FURTHER INTERPRETATION”. The main purpose of the DFHMSCAN program is to find macro-level programs.
- Identifies the language of a module by reference to the language of its last CSECT. This may be confusing if the module is made up of CSECTs written in different languages.
- Prints only 20 bytes of the code preceding a suspect instruction, in its detailed report (even though, for a BALR 14,15 instruction, it has scanned back 40-bytes). This may lead to apparent inconsistencies of interpretation in detailed reports. For example, two similar EXEC CICS commands in a scanned module may produce exactly the same 20-byte output in the report, but be interpreted differently.
- Works by finding code patterns that are similar to those generated by CICS macros. A module can contain such code without having a CICS macro in its source.