|
|
Privileged Mode
Initialize registers from a specified location.
Syntax
INITNM virtaddr [ISM |PIMREAL |PIMVIRTUAL]
INITCM virtaddr [ISM |PIMREAL |PIMVIRTUAL]
INITNM TCB
INITCM TCB | CMG | REGS
This command is for use by experienced DAT users and internals
specialists to initialize DAT when a dump is corrupted. The command
is also provided for the experienced Debug user.
For the INITNM command, the NM register set is loaded from the
specified location. It is assumed that the location contains data
in the form of an interrupt stack marker (ISM) which is the default,
or in the form of processor internal memory (PIM). Not all of the machine's
registers are found in an ISM. If this is the structure being used,
those registers not stored in the ISM are retrieved from the save
state area in the dump (or from the running machine in Debug).
For the INITCM command, the CM register set is loaded from one
of several locations depending upon the option specified. Four possibilities
exist:
The emulator/translator is not running, and the CM state for the
process is stored in the CMGLOBALS area of the PIB. The CMG
option is used in this case.
The emulator/translator is running, in which case the CM state is
maintained in the native mode registers. In this case the virtual
address of an interrupt stack marker (ISM) or processor internal
memory record (PIM) containing the emulator/translator's native mode
register set should be given so that the CM state may be extracted
from the registers.
The state of the emulator/translator is stored in the task control
block (TCB). As in the PIM and ISM case above, the register data
found is used to set up the CM state.
The user desires to construct the CM state from scratch. To do
this, the user must place into the current NM register set (using the
MR command) values that correspond to the state of an active
emulator/translator. The appropriate values are then extracted from
the register set to build the CM state. The REGS options
allows this to be done.
Parameters
- virtaddr
Any valid expression specifying the virtual address of an interrupt
stack marker (ISM) or a processor internal memory (PIM) record. The type
of structure is indicated by one of the following optional parameters:
- ISM
The data is an interrupt stack marker (default).
- PIMVIRTUAL
The data is processor internal memory format.
- PIMREAL
The data is processor internal memory format, but the address is
a real memory address. If a full virtual address is given, the
offset part is used as the real memory address.
- TCB
This parameter indicates that the register save state in the task
control block (TCB) for the current PIN should be used for initialization.
The register save state in the TCB is in the form of an
interrupt_marker_type.
- CMG
This parameter indicates that the CM registers should be initialized
based on CMGLOBALS area in the process information block (PIB) of the
current process.
- REGS
This parameter indicates that the CM registers should be initialized
based on the current NM regs. The NM regs are interpreted as containing
values used by the emulator/translator.
Examples
$ nmdebug > initnm 0.tcb(20)
Initialize the native mode registers from the indicated virtual address.
% cmdebug > initcm 40153014
Initialize the CM registers from the interrupt marker that starts at address
40153014. The process was most likely in the emulator (or else the CM state
would be stored in the CMGLOBALS area of the PIB).
Limitations, Restrictions
none
|