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
Sample Debug Sessions
Debug Manual—421921-003
F-48
Native Program Example
Note that at the first breakpoint, there is already some text in the data area. This
procedure is reusing some of the data area that the EXAMPLE_INIT procedure used.
Thus, if we had entered our breakpoint at the beginning of the program as "bm n
0x4FFFFEB4, w," we would have stopped in the EXAMPLE_INIT and
EXAMPLE_FILL_ARRAY procedures.
The memory-access breakpoint is triggered when anything is written to the 16-bit word.
In this case, we get two interrupts: one when the "e" is put into the word, and another
when the "n" is put into the word. This double interrupt is true only when the code
placing the data in the memory location is doing byte operations and the code is not
PRV. The next break happens after the data is entered. In second case, the data is
transferred in the PRV system procedure so the breakpoint is reported after the end of
the PRV procedure. In the following subsection, we discuss privileged commands.
DEBUG $PC=0x7E007EE4 -MEMORY ACCESS BREAKPOINT-
MEMORY ACCESS BREAKPOINT OCCURRED AT $PC=0x7E007EE4
7E00.7EE4 4FFF.FE68 Mil
7000.04EC 4FFF.FEE8 EXAMPLE_FILL_ARRAY + 0x88
4FFF.FE9C: 7000.0684 4FFF.FF30 EXAMPLE_MAIN + 0x114
4FFFFEB4: .evwx. .yzso. .me d. .ata..
4FFFFEC4: ...... ...... ...... ......
4FFFFED4: ...... ...... ...... ......
DEBUG $PC=0x7E007EF0 -MEMORY ACCESS BREAKPOINT-
MEMORY ACCESS BREAKPOINT OCCURRED AT $PC=0x7E007EF0
7E00.7EF0 4FFF.FE68 Mil
7000.04EC 4FFF.FEE8 EXAMPLE_FILL_ARRAY + 0x88
4FFF.FE9C: 7000.0684 4FFF.FF30 EXAMPLE_MAIN + 0x114
4FFFFEB4: .enwx. .yzso. .me d. .ata..
4FFFFEC4: ...... ...... ...... ......
4FFFFED4: ...... ...... ...... ......
enter some data
0123456789
DEBUG $PC=0x70000530 -MEMORY ACCESS BREAKPOINT-
MEMORY ACCESS BREAKPOINT OCCURRED AT $PC=0x7E007EF0
7000.0532 4FFF.FEE8 EXAMPLE_FILL_ARRAY + 0xCE
4FFF.FE9C: 7000.0684 4FFF.FF30 EXAMPLE_MAIN + 0x114
4FFFFEB4: .0123. .4567. .89 d. .ata..
4FFFFEC4: ...... ...... ...... ......
4FFFFED4: ...... ...... ...... ......