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-2
Overview of Example Program
Example F-1. Example Source Code for SDEMO1
 7.01 ?NOLIST, SOURCE $system.system.extdecs (DEBUG, FILE_OPEN_,
 7.11 ? INITIALIZER, PROCESS_GETINFO_, PROCESSHANDLE_NULLIT_,
 7.111 ? SEGMENT_ALLOCATE_, SEGMENT_USE_, WRITEREADX)
 8  ?LIST
 8.1 INT    my_termnum;
 8.101 INT    process_handle [0:9];
 8.11 STRING .EXT sp := %2000000D;
 8.22 PROC example_init;
 8.23 BEGIN
 8.3  INT  error_init;
 8.301  INT .EXT handle_ptr;
  8.302 STRING  hometerm [0:47];
 8.304  INT  hometerm_len;
 8.305  STRING  .hometerm_ptr;
  8.307 INITIALIZER; ! external system procedure
 8.308  error_init := PROCESSHANDLE_NULLIT_ (process_handle);
 8.31  error_init := PROCESS_GETINFO_ (process_handle,
  8.311  !fname:max!, !fname-len!, !priority!,
 8.312  !mom!, hometerm:48, hometerm_len);
 8.313  error_init := FILE_OPEN_ (hometerm:hometerm_len, my_termnum);
 8.317  IF error_init <> 0 THEN
 8.32  DEBUG;
 8.34  @hometerm_ptr := @hometerm [0];
 8.341  @handle_ptr := $WADDR_TO_EXTADDR (@process_handle [0]);
 8.35 END; -- example_init
  9  PROC example_fill_array (array_num);
 9.01  INT array_num;
 9.1 BEGIN
 9.101  INT   count_read;
 9.11  INT   error_fill_array;
 9.111  STRING   .in_out_msg [0:47];
 9.112  STRING .EXT segment_ptr;
 9.114  error_fill_array := SEGMENT_USE_ (array_num);
 9.12  IF error_fill_array <> 0 THEN
 9.121  DEBUG;
  9.122 sp [0] := array_num;
  9.123 @segment_ptr := @sp [41];
 9.124 in_out_msg [0] ':=' "enter some data" & %h0D0A; -- CR LF
 9.13  WRITEREADX (my_termnum, in_out_msg, 17, 48, count_read);
 9.14  segment_ptr ':=' in_out_msg [0] FOR count_read bytes;
 9.2 END; -- example_fill_array
 9.3 PROC example_main MAIN;
 10  BEGIN
 11.02 INT error_main;
 11.03 INT error_detail;
 12   example_init;
 12.007  error_main := SEGMENT_ALLOCATE_ (1, 131064D, !filename;len!, 
error_detail);
 12.02  IF error_main <> 0 THEN
 12.021  DEBUG;
 12.022  error_main := SEGMENT_ALLOCATE_ (2, 131064D, !filename;len!, 
error_detail);
 12.03  IF error_main <> 0 THEN
 12.031  DEBUG;
 12.032  error_main := SEGMENT_ALLOCATE_ (17, 258000D, !filename;len!, 
error_detail);
 12.04  IF error_main <> 0 THEN
 12.05 DEBUG;
 12.2 example_fill_array (1);
 12.3 example_fill_array (2);
 13   example_fill_array (17);










