Trailing-Edge
-
PDP-10 Archives
-
cuspmar86binsrc_1of2_bb-x128b-sb
-
10,7/ddt/ddt.doc
There are 3 other files named ddt.doc in the archive. Click here to see a list.
DDT.DOC -- Changes from DDT 41A(324) to DDT 44(642)
March, 1986
COPYRIGHT (C) 1970, 1983, 1984, 1986 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
TRANSFERRED.
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
DDT.DOC -- Changes from DDT 41A(324) to DDT 44(642) Page 2
SUMMARY
1.0 SUMMARY
DDT is a symbolic assembly language debugger for the DECsystem-10
and DECSYSTEM-20. DDT provides many debugging facilities, including
breakpoints, program single-stepping, and the ability to examine or
deposit programs or data symbolically. The source file DDT.MAC
assembles into the following different versions of DDT:
TOPS-10 TOPS-20 FUNCTION
VMDDT.EXE UDDT.EXE Brought in by the "DDT" command
DDT.EXE SDDT.EXE DDT with system symbols
FILDDT.EXE FILDDT.EXE For EXE or binary data files
DDT.REL RDDT.REL Relocatable user DDT
EDDT.REL EDDT.REL Exec mode DDT
-- MDDT.REL TOPS-20 monitor process DDT
-- KDDT.REL TOPS-20 monitor specific EDDT
DDT version 44 is a major release, sporting significant
enhancements in the extended addressing environment, in both user and
exec mode. These are documented under External Changes, section 2.0.
In addition, several bug fixes are incorporated in DDT version 44.
WARNING
A FEW OF THE NEW FEATURES IN DDT 44 ARE
NOT COMPATABLE WITH PREVIOUS VERSIONS OF
DDT. SOME COMMANDS THAT WORKED WITH
PREVIOUS VERSIONS OF DDT MAY NOT WORK OR
DO DIFFERENT THINGS WITH DDT 44. SEE
SECTION 2 FOR MORE INFORMATION.
DDT 44 supersedes all previous versions. It runs under all
supported monitors, and has been tested under TOPS-10 7.02 and 7.03.
All edits made through August, 1984 have been incorporated into DDT
44.
For DECsystem-10 sites, DDT is documented in the Utilities
manual, which is part of notebook 12 of the TOPS-10 Software
Notebooks. The manual can also be ordered separately as order number
DEC-10-UTILA-A-D. Although this manual documents version 37, many
commands are still supported as outlined in the manual. FILDDT is
also documented in notebook 12.
For DECSYSTEM-20 and DECsystem-10 sites, DDT is also documented
in the DDT Reference Card, order number AV-M272A-TK.
DDT.DOC -- Changes from DDT 41A(324) to DDT 44(642) Page 3
EXTERNAL CHANGES
2.0 EXTERNAL CHANGES
1. The patch abort command has been changed from $$0> to $0<.
2. On TOPS-20 systems, sections can now be created by "faulting"
them into existence, much the way a page can be created by
depositing something into it.
3. In most cases, if no explicit section number is given to
commands which need an address ($G, /, etc.), or if the
address given is 18 bits or less, but not if ",," is typed,
the current section will be supplied by default. Note that
this can be very dangerous in EXEC DDT if this is not
remembered! The exception to this is with the $G command:
if no address is specified, and the start address has a
non-zero left-half, then the full 30 bit address is used
directly.
4. UDDT-20 now occupies pages 764-777 inclusive. This
represents the addition of code pages 764 and 765.
5. The $$? command has been removed from FILDDT-20, as it made
no sense in this context. FILDDT-10 never had the command
(type last process error).
6. The $L command (TOPS-10 only) has been added to type out a
"memory map listing" (analguous to the TOPS-20 "INFORMATION
MEMORY" command).
7. DDT now handles breakpoint errors much more gracefully. Only
one error message will be issued for each breakpoint insert
or remove failure (once an error message has been issued no
further messages will be issued for that breakpoint until it
has successfully been inserted or removed). Further, DDT
allows breakpoints to be "moved" by noticing that the
breakpoint moved and not overwriting random program data
(thus allowing breakpoints to be inserted in "relocatable" -
e.g., PHASEd - code).
8. DDT now allows non-zero section (NZS) references to work even
if DDT is running in section 0. This depends on the KL-10
microcode version 400 (or later) which supports the XBLT
instruction running in section 0.
9. The "sym$?" partial-symbol-matching command has been
implemented to cause DDT to list all symbols begining with
'sym'.
10. The "$nT" ASCII typeout command has been enhanced to handle
arbitrary "n" bit bytes for "n" ranging from "7" to "36"
(decimal). The ASCII character will always be "AND"ed down
to a maximum of 8 bits before being typed.
DDT.DOC -- Changes from DDT 41A(324) to DDT 44(642) Page 4
EXTERNAL CHANGES
11. The "_" symbolic typeout command has been modified to always
attempt symbolic typeout (formerly such "obviously
non-instruction" values as "0" or "777777777777" were always
treated numerically), in particular by looking for full-word
symbolic match.
12. The typeout of In-Out instructions has been changed slightly.
Normally a full 13-bit instruction plus device code symbolic
match is attempted, followed by a 9-bit ("normal") opcode
symbolic match. The 9-bit opcode match is now attempted only
if the cpu-type is a KS-10, and the opcode is 704 (UMOVE) or
greater.
13. To allow FILDDT to more correctly deal with symbolic typeout,
four new $U commands have been added to select the cpu type
for emulation. A zero "n" value clears the specified cpu
type, a non-zero "n" value selects the specified cpu type.
The four cpu type values are:
1. $20U - specify KA-10 cpu
2. $21U - specify KI-10 cpu
3. $22U - specify KL-10 cpu
4. $23U - specify KS-10 cpu
This command is illegal in executive mode DDT, and, while
legal in user mode DDT, the cpu type will be automatically
"selected" everytime DDT is entered (in particular on $X
commands and the like) so that the effects of manually
selecting the cpu type may be somewhat transient.
14. The $I command has been expanded to accept the $nI
construction where "n" is the *DECIMAL* offset. This is
equivilent to the former (and slightly longer) $I+n command.
15. The $I command has two new locations/values to examine:
1. $8I/ - Returns the current virtual address of the CST
2. $9I/ - Returns the current virtual address of the SPT
16. The $I, $M, and $U commands now work in all flavors of DDT
(in particular, in FILDDT) as a "DDT-virtual address" in
order to look at the current values contained in the
specified DDT locations.
17. DDT version 44 now supports inter-section (i.e., accross
section boundry) breakpoints ($B) and single-stepping ($X)
commands. In order to set a breakpoint in a section other
than that in which DDT is currently executing or virtually
mapped, you must set a "Global Breakpoint Block" address.
DDT.DOC -- Changes from DDT 41A(324) to DDT 44(642) Page 5
EXTERNAL CHANGES
The command format is "adr$4M" where "adr" is a section-local
(i.e., only 18 bits) virtual address of the global breakpoint
block. This breakpoint block must be at least 64 (decimal)
words in size and may not cross a section boundry. DDT uses
the global breakpoint block for section-local interception of
breakpoints (and single-stepping as required) and subsequent
global (i.e., accross section boundry) transfer of control to
DDT.
18. By default, the "instr$X" command will execute the "instr"
instruction in the "current" section context. The
"instr$$nX" command construction may be used to specify that
the "instr" instruction is to executed in section "n" context
(note that a "global breakpoint block" must have been
previously selected by the $4M command for DDT to properly
simulate other-section context). If "n" is left blank then
the section context is indeterminate (in point of fact, DDT's
currently executing section will be used, in other words "DDT
will just XCT the instruction").
19. DDT version 44 now supports "Global" symbol tables, i.e.,
symbol tables in sections other than the section in which DDT
is currently executing. If JOBDAT locations .JBSYM or .JBHSM
contain a positive value (rather than the old IOWD format
symbol table pointer) then that value is treated as the
30-bit address of a "global symbol table vector" which in
turn points to the actual symbol table(s). Alternatively,
the "adr$5M" command may be used to specify the 30-bit global
address of the symbol table vector. As a further
convenience, the "-1,,n$5M" construction may be used to
specify that section "n" JOBDAT is to be used, i.e., that
relative locations .JBSYM/.JBUSY and .JBHSM in section "n"
are to be used to identify the symbol table(s). Once DDT has
been started, it "remembers" the origin of the symbol table
pointers and sets $5M accordingly. If you want DDT to
restart and find new symbol tables you must "flush" the old
pointers with a "0$5M" command.
20. The "n$6M" command may be used to set a permanent section
default for use in effective address calculation.
3.0 KNOWN BUGS AND DEFICIENCIES
The following is a list of all known bugs and deficiencies in DDT
44 as of 19-Jan-86.
1. DDT does not attempt to detect many illegal commands. For
example, 18 octal is accepted and treated as 20 octal. DDT
does not detect arguments to commands which are ignored,
e.g., $23Q is the same as $Q.
DDT.DOC -- Changes from DDT 41A(324) to DDT 44(642) Page 6
KNOWN BUGS AND DEFICIENCIES
2. The commands $<CR>, and $<LF> do not detect the attempt to
recall more than was saved.
3. When looking at user rather than exec memory in FILDDT-10
(e.g. n$mU), the AC's still come from CRSHAC rather than the
user pages.
4. Symbolic typeout is turned off for $O mode, thus addresses
are absolute rather than relative.
5. Typing more than 12 consecutive digits to DDT will cause it
to generate an overflow. This only affects programs which
have interrupts enabled for this condition or are in any way
sensitive to overflows.
6. In TOPS-20 DDTs, $Xing any JSYS which is followed by two
ERJMP instructions (such as ERSTR%) will not work if both
ERJMPs are skipped over. DDT will only skip over one ERJMP,
and in some cases may actually cause a fatal program
termination.
7. On TOPS-20 systems, typing an illegal fork number to fork<$$?
will cause DDT to die with "?Invalid process handle".
8. On TOPS-20 systems, $Xing a SKIPNL UUO will cause PA1050 to
complain of an Address Check and return to EXEC.
9. $Xing a BLT in a non-zero section can fail.
10. On TOPS-10 multi-processor configurations, EDDT needs to
flush the cache when (e.g.,) inserting/removing breakpoints,
etc.
11. EDDT doesn't work right with breakpoint command strings
(str>adr$B)
12. EDDT and $X'ing of CONO PI, don't get along well.
4.0 INSTALLATION INSTRUCTIONS
4.1 TOPS-10
To install DDT version 44 on your system, copy the files DDT.EXE,
VMDDT.EXE, FILDDT.EXE, DDT.REL, and EDDT.REL from the distribution
tape to SYS:. DDT.DOC should be installed on DOC: or HLP:.
The batch control file DDT.CTL contains all necessary
instructions to assemble and load DDT. It will normally have to be
modified slightly to correspond to the installation configuration.
DDT.DOC -- Changes from DDT 41A(324) to DDT 44(642) Page 7
INSTALLATION INSTRUCTIONS
4.2 TOPS-20
To install DDT version 44 on your system, copy the files
UDDT.EXE, SDDT.EXE, FILDDT.EXE, RDDT.REL, EDDT.REL, and MDDT.REL from
the distribution tape to SYS:. DDT.DOC should be installed on DOC:
or HLP:.
The batch control file DDT.CTL contains all necessary
instructions to assemble and load DDT. It will normally have to be
modified slightly to correspond to the installation configuration.
5.0 INTERNAL CHANGES
The internal changes to DDT are available in the source file
DDT.MAC near the begining of the file under the subtitle "Revision
History".
6.0 SUGGESTIONS
The following suggestion list has been accumulated from various
sources, including SPRs and DECUS sessions. The appearance of a
suggestion on this list does not necessarily mean that DIGITAL ever
intends to implement it.
1. Type the full filespec of a file being FILDDTed, to insure
that the right one is being used.
2. Implement a byte typein and typeout facility.
[End of DDT.DOC]