Debug Manual
Table Of Contents
- What’s New in This Manual
- About This Manual
- 1 Introduction
- Execution Modes on TNS/R Systems
- What User Access Is Required for Debugging
- How to Make a Process Enter Debug
- How to Select Debug as the Debugger
- Why a Process Enters Debug
- How to Determine Process State on a Trap or Signal
- Ending a Debug Session
- What Appears in the Debug Header Message
- How to Use Debug
- How Debug Breakpoints Work
- 2 Using Debug on TNS/R Processors
- 3 Debug Command Overview
- 4 Debug Commands
- Command Summary
- A Command
- AMAP Command
- B Command
- BASE Command
- BM Command
- C Command
- CM Command
- D Command
- DJ Command
- DN Command
- EX[IT] Command
- F[ILES] Command
- FC Command
- FN Command
- FNL Command
- FREEZE Command
- HALT Command
- H[ELP] Command
- I Command
- IH Command (TNS/R Native and OSS Processes)
- INSPECT Command
- LMAP Command
- M Command
- MH Command (TNS/R Native and OSS Processes)
- P[AUSE] Command
- PMAP Command (Accelerated Programs)
- PRV Command
- R Command
- S[TOP] Command
- T Command
- V Command
- VQ Command
- VQA Command
- = Command
- ? Command
- A Error Messages
- B ASCII Character Set
- C Command Syntax Summary
- Register Syntax
- Expression Syntax
- Address Syntax
- A Command
- AMAP Command
- B Command
- BASE Command
- BM Command
- C Command
- CM Command
- D Command
- DJ Command
- DN Command
- EX[IT] Command
- F[ILES] Command
- FC Command
- FN Command
- FNL Command
- FREEZE Command
- HALT Command
- H[ELP] Command
- I Command
- IH Command
- INSPECT Command
- LMAP Command
- M Command
- MH Command
- Output-Device Syntax
- P[AUSE] Command
- PMAP Command
- PRV Command
- R Command
- S[TOP] Command
- T Command
- V Command
- VQ Command
- VQA Command
- = Command
- ? Command
- D Session Boundaries
- E Correspondence Between Debug and Inspect Commands
- F Sample Debug Sessions
- Glossary
- Index
Debug Commands
Debug Manual—421921-003
4-61
Modify Register Contents
Considerations
•
When you want to change the current location of a process running in TNS or
accelerated mode, you modify the value of the P register. If the process is a
multiple-segment process, you must also change the space identifier. You change
the space identifier in order to change the location of the process to a different
code segment.
(It is also possible to change the current location of a process running in native
mode, but doing so requires knowledge of native mode internals and is beyond the
scope of this manual.)
•
In the TNS environment, ENV.<0:7> cannot be modified by specifying E for the
register parameter, except in privileged mode. However, in nonprivileged mode,
Debug does allow you to modify ENV.<4> and ENV.<7> by specifying SP for the
register parameter.
The LS (ENV.<4>) and CS (ENV.<7>) fields in the ENV register must agree with
the UC, UL, SC, and SL fields in the space identifier. Therefore, to modify
ENV.<4> or ENV.<7>, set new-value for the SP register parameter as follows:
Note that a nonprivileged user cannot set CS to 1, which would be system code or
system library.
•
When modifying the bit values of the $FCR31 register, the modification is made to
the local copy maintained by Debug. Although you can display the modified value
of the register, the copy that is placed in the original $FCR31 register when the
program resumes might be different than the modified value. Bits cannot be set in
undefined fields of the register, and the value of the CAUSE field cannot be
modified. Applying only selected bit fields reduces program failure when the
program is resumed.
new-value changes ENV.<4> to changes ENV.<7> to
UC 0 0
UL 1 0
SC (priv mode only) 0 1
SL (priv mode only) 1 1