A variable is a variable name, a corresponding integer value, and a set of attributes. A variable name is a sequence of letters, digits, underscores, or periods. A variable can be assigned a value using the > dcmd or ::typeset dcmd, and its attributes can be manipulated using the ::typeset dcmd. Each variable's value is represented as a 64-bit unsigned integer. A variable can have one or more of the following attributes: read-only (cannot be modified by the user), persistent (cannot be unset by the user), and tagged (user-defined indicator).
The following variables are defined as persistent:
Most recent value printed using the /, \, ?, or = dcmd.
Most recent count used with the $< dcmd
Virtual address of the base of the data section
Size of the data section in bytes
Virtual address of the entry point
Initial bytes (magic number) of the target's primary object file, or zero if no object file has been read yet
Size of the text section in bytes
In addition, the MDB kernel and process targets export the current values of the representative thread's register set as named variables. The names of these variables depend on the target's platform and instruction set architecture.