Google
 

Trailing-Edge - PDP-10 Archives - BB-F493Z-DD_1986 - 10,7/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]