IncomingCallList

Description

Provides a list of the callers of a routine included in a performance analysis model.

Applies to

ProfileRoutine object

Syntax

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.


Return value

ErrorReturn. Returns one of the following values:

  • Success! -- The function succeeded

  • ModelNotExistsError! -- The model does not exist

Usage

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.

Examples

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

See also

BuildModel

OutgoingCallList