Basic System Problem Analysis - August 2003

65
Case Study: SA663 continued
The illustration shows how we would mimic the actions of the instructions to find out
what this value was.
The command
$1a2 ($70) nmdat > dv [sp-#172]
Employs indirection ([ and ]) so that rather than loading the value at SP-#172 we are
instead saying take the value at SP-#172 and show me what it points to.
The value that it points to looks like it could be an HPE_STATUS. This would make
sense because the call to tm_unlink_gdpd passed in R24 the value at SP-#172 so it would
be logical to assume that this is a status variable and on return from the procedure we are
checking it to see if the call succeeded.
Note: Most HPE_STATUS values have a the following characteristics:
The left 16 bit value will be negative “info” value, positive values are warnings
but because they are positive they are harder to spot if you are guessing
The right 16 bits will have a small positive “subsys” value. You can get a list of
subsystem values withsyml subsys@,,const”. There will be a few non-
subsystems scattered in there but most will be valid MPE/iX subsystem numbers.
One of the tricks in successful dump reading is being able to identify a something just by
they way it looks. For example:
ffef00a6
That looks like it could be an HPE_STATUS. It has a negative “info” field and the “a6”
happens to be a valid subsystem number. Where as
00ab9a00
Does not look like it could be a valid HPE_STATUS value. The ‘9a00’ is way out of
range of subsystem numbers.