Provides a list of the callers of a routine included in a performance analysis model.
ProfileRoutine object
iinstancename.IncomingCallList ( list, aggregrateduplicateroutinecalls )
Argument |
Description |
---|---|
instancename |
Instance name of the ProfileRoutine object. |
list |
An unbounded array variable of datatype ProfileCall in which IncomingCallList stores a ProfileCall object for each caller of the routine. This argument is passed by reference. |
aggregateduplicateroutinecalls |
A boolean indicating whether duplicate routine calls will result in the creation of a single or of multiple ProfileCall objects. |
ErrorReturn. Returns one of the following values:
Success!—The function succeeded
ModelNotExistsError!—The model does not exist
Use this function to extract a list of the callers of a routine included in a performance analysis model. Each caller is defined as a ProfileCall object and provides the called routine and the calling routine, the number of times the call was made, and the elapsed time. The callers are listed in no particular order.
You must have previously created the performance analysis model from a trace file using the BuildModel function.
The aggregateduplicateroutinecalls argument indicates whether duplicate routine calls will result in the creation of a single or of multiple ProfileCall objects. This argument has no effect unless line tracing is enabled and a calling routine calls the current routine from more than one line. If aggregateduplicateroutinecalls is true, a new ProfileCall object is created that aggregates all calls from the calling routine to the current routine. If aggregateduplicateroutinecalls is false, multiple ProfileCall objects are returned, one for each line from which the calling routine called the called routine.
This example gets a list of the routines included in a performance analysis model and then gets a list of the routines that called each routine:
Long ll_cnt
ProfileCall lproc_call[]
lpro_model.BuildModel()
lpro_model.RoutineList(i_routinelist)
FOR ll_cnt = 1 TO UpperBound(iprort_list)
iprort_list[ll_cnt].IncomingCallList(lproc_call, & TRUE)
...
NEXT