expr
Manipulates values created by the dprint -nowait command
Format:
TV::expr action [ susp-eval-id ] [ other-args ]
Arguments:
action
The action to perform, as follows:
commands
Displays the subcommands that you can use. The CLI responds by displaying the subcommands shown here. Do not use additional arguments with this subcommand.
delete
Deletes all data associated with a suspended ID. If you use this command, you can specify an other-args argument. If you use the -done option, the CLI deletes the data for all completed expressions; that is, those expressions for which TV::expr get susp-eval-id done returns 1. If you specify -all, the CLI deletes all data for all expressions.
get
Gets the values of one or more expr properties. The other-args argument can include one or more values. The CLI returns these values in a list whose order is the same as the property names.
If you use the -all option instead of susp-eval-id, the CLI returns a list containing one (sublist) element for each object.
properties
Displays the properties that the CLI can access. Do not use additional arguments with this option.
susp-eval-id
The ID returned or thrown by the dprint command, or printed by the dwhere command.
other-args
Arguments required by the delete subcommand.
Description:
The TV::expr command, in addition to showing you command information, returns and deletes values returned by a dprint -nowait command. You can use the following properties for this command:
done
TV::expr returns 1 if the process associated with susp-eval-id has finished in all focus threads. Otherwise, it returns 0.
expression
The expression to execute.
focus_threads
A list of dpid.dtid values in which the expression is being executed.
id
The susp-eval-id of the object.
initially_suspended_process
A list of dpid IDs for the target processes that received control because they executed the function calls or compiled code. You can wait for processes to complete by entering the following:
dfocus p dfocus [TV::expr get \
susp-eval-id \
initially_suspended_processes] dwait
result
A list of pairs for each thread in the current focus. Each pair contains the thread as the first element and that thread’s result string as the second element; for example:
d1.<> dfocus {1.1 2.1} TV::expr \
get susp-eval-id result
{{1.1 2} {2.1 3}} d1.<>
The result of expression susp-eval-id in thread 1.1 is 2, and in thread 2.1 is 3.
status
A list of pairs for each thread in the current focus. Each pair contains the thread ID as the first element and that thread’s status string as the second element. The possible status strings are done, suspended, and {error diag}.
For example, if expression susp-eval-id finished in thread 1.1, suspended on a breakpoint in thread 2.1, and received a syntax error in thread 3.1, that expression’s status property has the following value when TV::expr is focused on threads 1.1, 2.1, and 3.1:
d1.<> dfocus {t1.1 t2.1 t3.1} \
TV::expr get 1 status
{1.1 done} {2.1 suspended} {3.1 {error {Symbol nothing2 not found}}}
d1.<>