If you can specify an environment variable you can trace the C file operations.
This did not give much useful information, as it did not give the name of the file being processed, and I could not trace the file which was causing fopen problems, so overall a good idea – but a poor implementation.
How to set it up
Where filter is
Filter Indicates which files to trace.
- //DD:filter Trace will include the DD names matching the specified filter string.
- //filter Trace will include the MVS™ data sets matching the specified filter string. Member names of partitioned data sets cannot be matched without the use of a wildcard. filter Trace will include the Unix files matching the specified filter string.
- //DD:* Trace will include all DD names.
- //* Trace will include all MVS data sets. This is the default setting.
- /* Trace will include all Unix files.
- * Trace will include all MVS data sets and Unix files.
Detail – use 2.
Buffer size such as 1M or 50K .
The output goes to a file such as /tmp, but you can change this with
This worked for me … but initially I could not read the output file. (It may because it came from Python which has been compiled with ASCII option.
The command ls -ltrT showed the file was tagged in ASCII, so I used
chtag -r EDC*
to reset it, and I could edit the file.
Trace details for ((POSIX)): Trace detail level: 2 Trace buffer size: 1024K fdopen(10,r) fldata: __recfmF:1........ 0 __dsorgVSAM:1..... 0 __recfmV:1........ 0 __dsorgHFS:1...... 1 __recfmU:1........ 1 __openmode:2...... 1 ...
Which is not very helpful as it does not tell you the file that has been opened!
When I traced a Python program, I only got information on 5 files – instead of the hundreds I was expecting.
Various abends and problems
I’ll list them here for search engines to find.
CEE3250C The system or user abend U4000 R=00007017 was issued.
- Explanation: The assembler user exit could have forced an abend for an unhandled condition. These are user-specified abend codes.
- System action:Task terminated.
- Programmer response:
- Check the Language Environment message file for message output. This will tell you what the original abend was.
There were no other messages. BPXBATCH ended with return code 2304 which means a kill -9 was issued.
If I remove the _EDC_IO_TRACE it works.
I also got a file BST-1.20220809.110241.83951661 etc which is tagged as ASCII – but is not.
This file had the trace for they Python file which was being run – including the name of the file.