ptrace()

The ptrace() callable service uses captured storage to allow the debugger to map the program that is being debugged into private storage that the debugger can refer to frequently. The amount of ESQA that is required can be calculated as the number of pages of needed storage times the number of concurrent debug sessions +2 by 40.

Example: To calculate the amount of storage that is needed if a programmer is debugging a 1-MB program and a 200 KB automatic data stack that are both captured:
1.2MB * 256 pages/MB * (1 debug session + 2) * 40 bytes/page
The answer is 37 KB of ESQA.

The ptrace() callable service uses shared storage pages to improve performance. Because use of shared storage pages is not critical to completion of this function, when the number of shared storage pages in use reaches about 60% of the specified limit, ptrace() no longer uses shared storage pages.