|Command||system.debugger.drs Definition/System Debugger
Applicable release versions: AP, R83
|Category||System Debugger (42)|
|Description||references a disk location or Pick Virtual Address. The data format and window specifications, if unspecified, are dictated by previous settings.
The "data reference specification" is one of the three elements used in referencing disk locations within the system debugger; it specifies either a "direct" or an "indirect" address.
Address specifications are represented by the character preceding the address, as follows:
Indicates the address is a hexadecimal number.
Indicates the address is a decimal number.
The formats illustrated use the default hexadecimal representations.
Direct reference :
"fidaddr" is the frame-id (fid) of the virtual frame, and "dataaddr" is the offset into the virtual frame specified by "fidaddr". If "fidaddr" is not specified, the current process' pcb is the referenced frame. Either of these parameters may be preceded by a period (.), indicating that the address is a hexadecimal value, or a comma (,), which indicates that the address is a decimal value.
Indirect (and symbolic) references :
Where "symbolname" is the name of the symbol, as defined in either the "psym", "gsym" or "tsym" files. This displays the register number, displacement, format type, and window of the symbol. The symbol table must be "set" prior to using the indirect reference to a symbol name. See "set-sym".
The content, rather than the definition, of the virtual memory area defined by the symbol is displayed in the window equal to the size specified in the symbol definition or by a window specification.
This displays the contents of the given symbolname.
This references the data pointed to by the address contained in the symbol.
This treats the specified location as a storage register which is used to reference data. The displacement, "dataaddr", is added to the frame address to get the address of the storage register.
Double Indirect References:
This is one more level of indirection from the single "*" addressing. The specified location is assumed to contain a storage register which is pointing to another storage register which is pointing to the displayed data.
For "*" and "**" addressing, if the first byte of the medial storage register is a x'82', the element is interpreted as a basic indirect string element and the storage register is taken from two bytes beyond this location. If any of the data fields are invalid as storage registers, the message "addr" (or "err!" in R83) appears.