sendCallStackInfo

sendCallStackInfo();

The sendCallStackInfo method of the Process class requests a target process (the method receiver) to send one or more notifications containing information regarding its call stack.

The target process can be any current process, including the requesting process itself or a process executing on another node.

The information received is the same as that returned by the getCallStackInfo method of the Process class, although that method can be used only for the current process instance.

The target process is activated temporarily or interrupted in order to retrieve the call stack information and send the notifications, after which it resumes whatever it was doing.

The sendCallStackInfo method is asynchronous; that is, it does not wait until the information is received. The information is received through notifications some time after the method is called.

The information in the notification relating to the call stack for the target process is shown in the following table.

Parameter Contains …
eventType Process_Call_Stack_Info_Event
target Process instance of the process that made the request
userInfo Call stack information stored within a string value

Register to receive notifications of events of type Process_Call_Stack_Info_Event (a global constant in the JadeProcessEvents category) on the process making the request using the beginNotification method defined in the Object class before executing the sendCallStackInfo method, as shown in the following code fragment.

self.beginNotification(process, Process_Call_Stack_Info_Event,
                       Response_Continuous, 0);

To test whether a notification contains call stack information, the userNotification method should test whether the value of the eventType parameter is Process_Call_Stack_Info_Event.

If the size of the call stack information collected is greater than the maximum allowed for a notification, the information is broken into parts and sent using multiple notifications. Each delivered notification records positional information at the end of the string, in the format [<process oid>:<current notification>:<total number of notifications>] (for example, [187.5:1:3]).

If the target process (the method receiver) is not a valid current process, an 1128 exception (The target process is not valid) is raised.