Changes the value of a scalar variable
dassign target value
The name of a scalar variable in your program.
A source-language expression that evaluates to a scalar value. This expression can use the name of another variable.
The dassign command evaluates an expression and replaces the value of a variable with the evaluated result. The location can be a scalar variable, a dereferenced pointer variable, or an element in an array or structure.
The default focus for the dassign command is thread. If you do not change the focus, this command acts upon the thread of interest (TOI). If the current focus specifies a width that is wider than t (thread) and is not d (default), dassign iterates over the threads in the focus set and performs the assignment in each. In addition, if you use a list with the dfocus command, the dassign command iterates over each list member.
The CLI interprets each symbol name in the expression according to the current context. Because the value of a source variable might not have the same value across threads and processes, the value assigned can differ in your threads and processes. If the data type of the resulting value is incompatible with that of the target location, you must cast the value into the target’s type. (Casting is described in the Classic TotalView User Guide.)
Assigning Characters and Strings
*If you are assigning a character to a target, place the character value within single-quotation marks; for example, ‘c’.
*You can use the standard C language escape character sequences; for example, \n and \t. These escape sequences can also be in a character or string assignment.
*If you are assigning a string to a target, place the string within quotation marks. However, you must escape the quotation marks so they are not interpreted by Tcl; for example, \"The quick brown fox\".
If value contains an expression, the TotalView expression system evaluates the expression. See“Using the Evaluate Window” for more information.
Command alias 
Changes a scalar variable’s value
dassign scalar_y 102
Stores the value 102 in each occurrence of variable scalar_y for all processes and threads in the current set.
dassign i 10*10
Stores the value 100 in variable i.
dassign i i*i
Does not work and the CLI displays an error message. If iis a simple scalar variable, you can use the following statements:
set x [lindex [capture dprint i] 2]
dassign i [expr $x * $x]
f {p1 p2 p3} as scalar_y 102
Stores the value 102 in each occurrence of variable scalar_y contained in processes 1, 2, and 3.
Related Topics