With the
Inviso can be used both in a distributed environment and in a non-distributed. API functions not taking a list of nodes as argument works on all started runtime components. If it is the non-distributed case, that is the local runtime component. The API functions taking a list of nodes as argument, or as part of one of the arguments, can not be used in a non-distributed environment. Return values named
Making the process
Starts a control component process on the local node. A control component must be started before runtime components can be started manually or otherwise accessed through the
Stops the control component. Runtime components are left as is. They will behave according to their dependency values.
Starts or tries to connect to an existing runtime component at the local node, regardless if the system is distributed or not.
The
As
As
As
Stops runtime component on
A combination of
Changes the options for one or several runtime components. If for instance overload is redefined, the previous overload will be stopped and the new started. See
Starts the tracing at the specified nodes, meaning that the runtime components transits from the state
The
The trace information can be configured to either write trace information to a plain trace information file or to relay it to another inviso meta tracer on another node. The inviso meta tracer is capable of matching function calls with their function returns (only if
To be able to match calls with returns a state can be saved when detecting a function call in a public loop data structure kept by the inviso meta tracer. The public loop data structure is given as argument to a handler-function called whenever a meta trace message arrives to the inviso meta tracer (both function calls and function returns). The public loop data structure is first initiated by the
Further there is a risk that function call states becomes abandoned inside the public loop data structure. This will happen if a function call is entered into the public loop data structure, but no function return occurs. To prevent the public loop data structure from growing infinitely the clean function
When initiating tracing involving trace information without a
The default public loop data structure may be extended with more element positions. The first position must be left to the implementation of registered-name translations. If the public loop data structure is changed no longer meeting this requirement, the
A wrap files specification is used to limit the disk space consumed by the trace. The trace is written to a limited number of files each with a limited size. The actual filenames are
The
If the
The ip trace driver has a queue of
Stops tracing on all or specified
Stopping tracing means going to state
Stops all tracing including removing meta-trace patterns. Removes all trace patterns. If the node is
Various options can make the node keep set trace patterns and log-files. The node still enters the
Set trace pattern (global) on specified or all nodes. The integer replied if the call was successfully describes the number of matched functions. The functions without a
When calling several nodes, the nodes are called in parallel.
The option
See
Set local trace pattern on specified functions. When calling several nodes, the nodes are called in parallel.
See
Clear global trace patterns. When calling several nodes, the nodes are called in parallel.
See
Clear local trace patterns. When calling several nodes, the nodes are called in parallel.
Set process trace flags on processes on all or specified nodes. The integer returned if the call was successful describes the matched number of processes. The functions without a
There are many combinations which does not make much sense. For instance specifying a certain process identifier at all nodes. Or an empty
When calling several nodes, the nodes are called in parallel.
See
Clear process trace flags on all or specified nodes. When calling several nodes, the nodes are called in parallel.
Clears all trace flags on all or specified nodes. Just for convenience.
Initializes
Note that we can not use wildcards here (even if it is perfectly legal in Erlang). It also sets the
This function is also available without
The
See
Activates meta-tracing in the inviso_rt_meta tracer. Except when using
See tpm/X for details on arguments and return values.
Same as tpm/X but all match specs in
Simple example: We want any process executing the function
inviso:tpm_tracer(mymod,init,1,[{[1234],[],[{trace,[all],[call]}]}],void).
This will internally, by the meta tracer on each Erlang node, be translated to:
erlang:trace_pattern({mymod,init,1},[{[1234],[],[{trace,[all],[call,{{tracer,T}}]}]}],[{meta,P}]).
Where
This function adds a list of match-specs to the already existing ones. It uses an internal database to keep track of existing match-specs. This set of match specs can hereafter be referred to with the name
When calling several nodes, the nodes are called in parallel.
See tpm_ms/X for details on arguments and return values, and tpm_tracer/X for explanations about the appending of
Removes a named match-spec from the meta traced function. Note that it never is a fault to remove a match spec. Not even from a function which is non existent.
When calling several nodes, the nodes are called in parallel.
Removes the meta trace pattern for the function, means stops generating output for this function. The public loop data structure may be cleared by the previously entered
When calling several nodes, the nodes are called in parallel.
Quick version for setting meta-trace patterns on
If both
Function for removing previously set patters by
Quick version for setting meta-trace patterns capable of learning the association of a pid with a globally registered name (registered using
Function for removing previously set meta patters by
Clears all, both global and local trace patterns. Does not clear meta trace patterns. Equivalent to a call to
Suspends the runtime components.
Makes the runtime components
Finds out the state and status of a runtime component. A runtime component is in state
Returns the current tracerdata of a runtime component. A runtime component in state
Returns the actually existing log files associated with
This function is useful to learn the name and path of all files belonging to a trace. This information can later be used to move those files for merging. Note that since it is possible to ask on other tracerdata than the current, it is possible to learn filenames of previously done traces, under the circumstances that they have not been removed.
Copies log files over distributed erlang to the control component node. This function can only be used in a distributed system.
The resulting transferred files will have the prefix
Deletes listed files or files corresponding to tracerdata. If no tracerdata or list of files are specified in the call, current tracerdata at the runtime components will be used to identify files to delete. All filenames shall be strings.
Adds
All events will be sent to all subscribers in the event sending list.
Event = {inviso_event,ControllerPid,erlang:localtime(),Msg}
Msg = {connected, Node, {RTtag, {State,Status}}}
| {disconnected, Node, NA}
| {state_change,Node,{State,Status}}
| {port_down,Node,Reason}
Node = node() | local_runtime
Subscribing to inviso-event may be necessary for a higher layer trace-tool using inviso to follow the runtime components.
Removes