Network Debugging Protocol
RFC 643
|
Document |
Type |
|
RFC - Unknown
(July 1974; No errata)
|
|
Last updated |
|
2013-03-02
|
|
Stream |
|
Legacy
|
|
Formats |
|
plain text
html
pdf
htmlized
bibtex
|
Stream |
Legacy state
|
|
(None)
|
|
Consensus Boilerplate |
|
Unknown
|
|
RFC Editor Note |
|
(None)
|
IESG |
IESG state |
|
RFC 643 (Unknown)
|
|
Telechat date |
|
|
|
Responsible AD |
|
(None)
|
|
Send notices to |
|
(None)
|
Network Debugging Protocol Eric Mader
RFC: 643 July 1974
NIC #30873
This document describes a proposed protocol to be used in an
implementation of a PDP-11 network Bootstrap service and a
cross-network debugger. The protocol is designed for debugging
processes running under an operating system which can perform some of
the "lower level" debugging tasks, such as planting and removing
breakpoints and single stepping. A subset of the protocol could be
used if such a capability does not exist (a stand-alone program for
example).
The protocol is a level 2 protocol, which bypasses the ARPANET
HOST-HOST protocol. (This is implemented on TENEX using special
privileged system calls which allow messages to be sent directly to
and received directly from the IMP). Messages are sent between the
PDP-11 and the remote debugger on one link (currently 377 octal).
Each message from the remote debugger to the PDP-ll is a request that
the PDP-11 perform some action, and each message from the PDP-11 to
the remote debugger is either a reply to that request or an indication
that a process has stopped running (i.e. has trapped, hit a
breakpoint, etc). The exact format of the messages is shown in Figure
1 below.
Each command consists of an 8-bit op-code, and an 8-bit
process-id, two 16-bit arguments, and an optional string of 8-bit
bytes. The op-code field from the PDP-11 should be the same as that
sent by the remote host to indicate successful completion of the
request or be the same as that set by the remote host with the 200 bit
set to indicate failure to complete the request. Op-codes from the
PDP-11 which have the 100 bit set are asynchronous indication that a
process has stopped for a reason other than a request from the remote
host. (See description of asynchronous replies below). An op-code
from 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 as
a 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 is
operational. 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 to
debug the process, or the process doesn't exist.
Op-Code 2 - END DEBUG (Process)_______ _ _ ___ _____ _________
This command relinquishes the ability to debug a process. The
PDP-11 should reply
END DEBUG (Process)
(op-code 2) unless the remote host isn't debugging the process, in
which case it should respond
CAN'T END DEBUG (Process)
(op-code 202). If the process isn't running when the END DEBUG is
done, 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 from
running. The PDP-11 should respond
STOPPED (process)
(op-code 3) unless the process isn't being debugged by the remote
host. 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 Byte
String 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 3
if the deposit doesn't succeed, or the remote host isn't debugging the
process.
Op-Code 5 - RESUME (Process)_______ _ _ ______ _________
This instructs the PDP-11 to allow the given process to resume
running. 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 the
process.
Op-Code 6 - EXAMINE (Process, Address, Count)_______ _ _ _______ _________ ________ ______
Show full document text