func symaddr [ System Debug Reference Manual ] MPE/iX 5.0 Documentation
System Debug Reference Manual
func symaddr
Returns the bit- or byte-relative offset of a component specified through
the path specification, relative to the outer structure.
Syntax
symaddr (path [units])
Formal Declaration
symaddr:u32 (path:str [units:u16=8])
Parameters
path A path specification, as described in chapter 5,
"Symbolic Formatting/Symbolic Access."
units Specifies the units (that is, bit width) in which the
result is given. 1 means bits, 8 means bytes, 32 means
words. The default is bytes.
Symbolic offsets are rounded down to the nearest whole
unit.
Examples
$nmdebug > symopen gradtyp.demo
Opens the symbolic data type file gradtyp.demo. It is assumed that the
Debug variable addr contains the address of a StudentRecord data
structure in virtual memory. The following code fragment is from this
file:
CONST MINGRADES = 1; MAXGRADES = 10;
MINSTUDENTS = 1; MAXSTUDENTS = 5;
TYPE
GradeRange = MINGRADES .. MAXGRADES;
GradesArray = ARRAY [ GradeRange ] OF integer;
Class = ( SENIOR, JUNIOR, SOPHOMORE, FRESHMAN );
NameStr = string[8];
StudentRecord = RECORD
Name : NameStr;
Id : Integer;
Year : Class;
NumGrades : GradeRange;
Grades : GradesArray;
END;
$nmdebug > wl SYMADDR("StudentRecord.Name")
$0
Print the byte offset of the name field for StudentRecord. Since it is
the first item in the record, its offset is zero.
$nmdebug > wl SYMADDR("StudentRecord.NumGrades" 1)
$a8
Print the bit offset of the NumGrades field for StudentRecord.
$nmdebug > wl SYMADDR("StudentRecord.Grades[4]" #32)
$9
Print the word offset of the fourth element of the grades field for
StudentRecord.
Limitations, Restrictions
none
MPE/iX 5.0 Documentation