Movatterモバイル変換


[0]ホーム

URL:


[RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Info page]

UNKNOWN
Network Debugging Protocol                          Eric MaderRFC: 643                                             July 1974NIC #30873     This document describes a proposed protocol  to  be  used  in  animplementation   of   a   PDP-11   network  Bootstrap  service  and  across-network  debugger.   The  protocol  is  designed  for  debuggingprocesses  running under an operating system which can perform some ofthe "lower level" debugging  tasks,  such  as  planting  and  removingbreakpoints  and  single  stepping.  A subset of the protocol could beused if such a capability does not exist (a  stand-alone  program  forexample).     The protocol is a level 2 protocol, which  bypasses  the  ARPANETHOST-HOST  protocol.   (This  is  implemented  on  TENEX using specialprivileged system calls which allow messages to be  sent  directly  toand  received  directly  from the IMP).  Messages are sent between thePDP-11 and the remote debugger on  one  link  (currently  377  octal).Each  message from the remote debugger to the PDP-ll is a request thatthe PDP-11 perform some action, and each message from  the  PDP-11  tothe remote debugger is either a reply to that request or an indicationthat  a  process  has  stopped  running  (i.e.   has  trapped,  hit  abreakpoint, etc).  The exact format of the messages is shown in Figure1 below.     Each  command  consists  of  an  8-bit  op-code,  and  an   8-bitprocess-id,  two  16-bit  arguments,  and  an optional string of 8-bitbytes.  The op-code field from the PDP-11 should be the same  as  thatsent  by  the  remote  host  to  indicate successful completion of therequest or be the same as that set by the remote host with the 200 bitset  to  indicate  failure to complete the request.  Op-codes from thePDP-11 which have the 100 bit set are asynchronous indication  that  aprocess  has stopped for a reason other than a request from the remotehost.  (See description of asynchronous replies  below).   An  op-codefrom  the  PDP-11  with  both  the 100 and 200 bit set is meaningless.Thus, the 8-bit op-code field sent by the PDP-11 can be thought of  asa CAN'T Flag, an Asynchronous STOP Flag, and a 6-bit op-code.     In the description that follows the commands will be given as   NAME (Process-ID, Argument 1, Argument 2, BYTE STRING)with only as many of the fields present as are used.Op-Code 0 - NOP_______ _ _ ___     This command is intended to be used to determine if the PDP-11 isoperational.   It  has no effect on any process running in the PDP-11.The response is NOP.Op-Code 1 - DEBUG (Process)_______ _ _ _____ _________     This command requests the ability to  debug  the  given  process.The PDP-11 should respond with

                                                    Page   2                     DEBUGGING (process)(op-code 1) if no other remote host is currently doing so, and                    CAN'T DEBUG (process)(op-code 201) if another remote host  has  been  given  permission  todebug the process, or the process doesn't exist.Op-Code 2 - END DEBUG (Process)_______ _ _ ___ _____ _________     This command relinquishes the ability to debug  a  process.   ThePDP-11 should reply                     END DEBUG (Process)(op-code 2) unless the remote host isn't  debugging  the  process,  inwhich case it should respond                  CAN'T END DEBUG (Process)(op-code 202).  If the process isn't running when  the  END  DEBUG  isdone, then the effect should be the same as                      RESUME (PROCESS)                    END DEBUG (PROCESS)Op-Code 3 - STOP (Process)_______ _ _ ____ _________     This command requests the PDP-11 to stop the given  process  fromrunning.  The PDP-11 should respond                      STOPPED (process)(op-code 3) unless the process isn't  being  debugged  by  the  remotehost.  In this case it should reply                    CAN'T STOP (process)  (op-code 203).Op-Code 4 - DEPOSIT (Process, Address, Count, Byte String)_______ _ _ _______ _________ ________ ______ ____ _______     This instructs the PDP-11 to deposit  the  Count  bytes  in  ByteString  into  the  given process's address space beginning at Address.The PDP-11 should reply             DEPOSITED (Process, Address, Count)if successful or           CAN'T DEPOSIT (Process, Address, Count)

                                                    Page   3if the deposit doesn't succeed, or the remote host isn't debugging theprocess.Op-Code 5 - RESUME (Process)_______ _ _ ______ _________     This instructs the PDP-11 to allow the given  process  to  resumerunning.  The PDP-11 should reply                     RESUMED (Process)before it starts the process (in case it traps right away), or                   CAN'T RESUME (Process)if the process wasn't stopped, or the remote host isn't debugging  theprocess.Op-Code 6 - EXAMINE (Process, Address, Count)_______ _ _ _______ _________ ________ ______     This instructs the PDP-11 to return Count bytes  from  the  givenprocess address space starting at Address.  The PDP-11 should reply       CONTENTS (Process, Address, Count, Byte String)if it can supply the bytes, or           CAN'T EXAMINE (Process, Address, Count)if all the bytes don't exist in the address space, or the remote  hostisn't debugging the process.Op-Code 7 - DEPOSIT STATE VECTOR (Process, Index, Byte Count,_______ _ _ _______ _____ ______ _________ ______ ____ ______            Byte String)            ____ _______     This instructs the PDP-11 to deposit the Byte Count bytes in ByteString  into the state vector for the given process starting with byteIndex.  See Figure 2 for the format of the state vector.   The  PDP-11should reply     DEPOSITED STATE VECTOR (Process, Index, Byte Count)unless the bytes won't all fit in the state vector or the remote  hostisn't debugging the process.  In this case the reply should be  CAN'T DEPOSIT STATE VECTOR (Process, Index, Byte Count)Op-Code 10 - BREAK (Process, Address, Proceed Count)_______ __ _ _____ _________ ________ _______ ______     This instructs the PDP-11 to place a breakpoint at Address in thegiven  process's address space, with a proceed count of Proceed Count.The proceed count can be changed by issuing another BREAK with adifferent count.  The PDP-11 should reply

                                                    Page   4           BROKE (Process, Address, Proceed Count)if it was able to plant the breakpoint and        CAN'T BREAK (Proceed, Address, Proceed Count)if it was unable to plant the breakpoint because the breakpoint tablesfor  the  process are full, or because the remote host isn't debuggingthe process.  Note that the  PDP-11  must  keep  track  of  where  thebreakpoints are, the old contents of these locations etc.Op-Code 11 - UNBREAK (Process, Address)_______ __ _ _______ _________ ________     This instructs the PDP-11 to remove the breakpoint  from  Addressin the process's address space and release all storage associated withit.  The PDP-11 should reply                 UNBROKE (Process, Address)when the breakpoint is removed, or              CAN'T UNBREAK (Process, Address)if the process doens't have a breakpoint at Address or the remote hostisn't debugging the process.Op-Code 12 - SINGLE STEP (Process)_______ __ _ ______ ____ _________     This instructs the PDP-11 to let the given  process  execute  oneinstruction, using the Trace Trap feature.  The PDP-11 should reply                  SINGLE STEPPING (Process)before the process is started, or                 CAN'T SINGLE STEP (Process)if the process is already running or the remote host  isn't  debuggingthe process.Op-Code 13 - PROCEED BPT (Process)_______ __ _ _______ ___ _________     This instructs the PDP-11 to allow the process to proceed from  abreak point trap (BPT, see below).  The PDP-11 should reply                  PROCEEDING BPT (Process)before allowing the process to proceed, or                 CAN'T PROCEED BPT (Process)if the process isn't stopped at a breakpoint or the remote host  isn'tdebugging the process.

                                                    Page   5Op-Code 14 - CREATE PROCESS_______ __ _ ______ _______     This instructs the PDP-11 to  create  a  process  (with  its  ownvirtual address space if the system will support such a feature).  ThePDP-11 should reply                  CREATED PROCESS (Process)if it could create a process, with the process-id in process.  If  theprocess  creation  failed  or  the system cannot create processes, thePDP-11 should reply                    CAN'T CREATE PROCESS.Once a remote host has created a process it is debugging it, that is a                       DEBUG (process)need not be done.Op-Code 15 - DESTROY PROCESS (Process)_______ __ _ _______ _______ _________     This instructs the PDP-11 to destroy the  given  process.   Afterthe  process  is destroyed the remote host cannot, of course, debug itso there is no need to do an                    END DEBUG (Process).The PDP-11 should reply                 DESTROYED PROCESS (Process)if the process has been destroyed.  If the system  doesn't  support  amulti-process structure or the remote host isn't debugging the processthe PDP-11 should reply              CAN'T DESTROY PROCESS (Process).                 Asynchronous Stop Replies                 ____________ ____ _______     These replies (op-code between 100 and 177 octal) are sent by thePDP-11  wherever a process being debugged stops running for any reasonother than in response to the                       STOP (Process)command.  Each of these replies includes the entire state  vector  forthe process.

                                                    Page   6Op-Code 100 - TRAP (Process, Reason, 0, STATE VECTOR)_______ ___ _ ____ _________ _______ __ _____ _______     This informs the remote host that a  process  has  "trapped",  orterminated abnormally.  The reason is a system error code, or could bea trap vector address in the stand-alone case.Op-Code 101 - HALT (Process, 0,0, STATE VECTOR)_______ ___ _ ____ _________ ____ _____ _______     This  informs  the  remote  host  that  the  given  process   hasterminated normally.Op-Code 102 - BPT (Process, 0, 0, STATE VECTOR)_______ ___ _ ___ _________ __ __ _____ _______     This informs the remote host that the given  process  has  hit  abreakpoint trap.Op-Code 103 - TTRAP (Process, 0, 0, STATE VECTOR)_______ ___ _ _____ _________ __ __ _____ _______     This informs the remote host that the given  process  has  hit  atrace trap, i.e.  has just executed one instruction in response to the                    SINGLE STEP (Process)command.

                                                    Page   7                          Figure 1             FORMAT OF NETWORK DEBUGGER MESSAGES                    ----------------                   | TYPE | HOST    |                    ----------------                   | LINK | STYPE   |                    ----------------                   | CMD  |  PID    |                    ----------------                   |    ARG1        |                    ----------------                   |    ARG2        |                    ----------------     TYPE -- The HOST-IMP/IMP-HOST message type, should             always be zero.     HOST -- The source host ID.     LINK -- The debugger link.    STYPE -- The message subtype, always zero.      CMD -- The debugger command op-code, excess 100 for             asynchronous reply's, excess 200 for "can't"             reply's.      PID -- Process ID of process being debugged.     ARG1 -- The first argument of the command.     ARG2 -- The second argument of the command.

                                                 Page 8                          Figure 2                  FORMAT OF STATE VECTORS                      ------------                     |    R0      |                      ------------                     |    R1      |                      ------------                     |    R2      |                      ------------                     |   ...      |                      ------------                     |    PC      |                      ------------                     |    PS      |                      ------------

[8]ページ先頭

©2009-2025 Movatter.jp