ILE C/C++ Programmer's Guide


Removing Module Observability

Before you can observe a module, two types of data must be stored with the module.

The two types of data are:

Create Data
Represented by the *CRTDTA value. This data is necessary to translate the code to machine instructions. The module must have this data before you can change the module optimization level.

Debug Data
Represented by the *DBGDTA value.

Both *CRTDTA and *DBGDTA are necessary for a module to be debugged.

You can change the module without re-compiling it only if these two data types are stored with it. After the module is re-compiled, only this data can be removed. After this data is removed, its observability is also removed, and you must recompile the module to replace the data.

Removing all observability reduces the module to its minimum size (with compression). It is not possible to change the module in any way unless you compile the module again. To compile it again, you must have authorization to access the source code.

You can use the CHGMOD command to remove either kind of data from the module.

Example:

Use the following procedure to remove observability from the T1520IC4 program:

  1. Enter WRKMOD. The Work with Modules display is shown.
  2. Select option 5 (Display) to see the attribute values that need to be changed. The Display Module Information display is shown.

    Check the value of the field Creation data. If it is *YES, the Create Data exists, and can be removed. If this value is *NO, there is no Create Data to remove. The module cannot be translated again unless you re-create it.

  3. Press the Roll Down key to see more information for the module. Check the value of the field Debug Data. If it is *YES, the module can be debugged. If it is *NO, the module cannot be debugged unless you compile it again, and include the debug data. Then press F3 to get back to Work with Modules display.
  4. Select option 2 (Change) for the module whose observability you want to change. The CHGMOD command prompt is shown.
  5. Type over the value specified for the Remove Observable Info prompt. The following command appears in the job log for the Change Module command after the Enter key is pressed.

    CHGMOD MODULE(MYLIB/T1520IC4) RMVOBS(*ALL)
  6. You can ensure that the module is created again by changing the value of the Force Module Recreation parameter to *YES.
    Note:
    This parameter is not required simply because the optimization level is changed. A change in the optimization level typically results in module re-creation unless the Create Data has been removed. If you want the program to be translated again after removing the debug data, without changing the optimization level, you must use the Force Module Recreation parameter.
  7. Do steps 2 through 5 again for any additional modules you want to change. Whether you are changing one module or several in the same ILE program, the program creation time is the same because all imports are resolved when the system encounters them.
    Note:
    Imports can be left unresolved using the *UNRSLVREF parameter of the CRTPGM command. Program creation time is the same.
  8. Create the ILE program again by using the CRTPGM command.


[ Top of Page | Previous Page | Next Page | Table of Contents ]