home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sd386v50.zip / readme.doc < prev    next >
Text File  |  1996-09-11  |  9KB  |  273 lines

  1. SD386 Version 5.00
  2. ------------------
  3.   - This is the final SD386 release.
  4.   - This release includes all source.
  5.   - The primary improvements in this release are:
  6.  
  7.      - C++ support.
  8.      - TCP/IP support.
  9.      - support for multiple code segment source files.
  10.  
  11.  See the beta release info below for details.
  12.  
  13.  
  14. SD386 Version 4.04
  15. ------------------
  16.  Here's what you can now do with the addition of TCP/IP support:
  17.  
  18.  - Remote debug a process over a network TCP/IP connection.
  19.  
  20.  - Remote debug a child process over a network TCP/IP connection.
  21.  
  22.  - Remote debug the processes of a multiple process application
  23.    using a remote TCP/IP connection. This is NOT an attach/detach
  24.    methodology. You will get an independent debugger window for
  25.    each process of the application. A debugger window will be
  26.    automatically spawned each time a new process begins.
  27.  
  28.  - Ctrl-Break Support for all of the above configurations.
  29.  
  30.  - DosExecPgm() Support for all of the above connections.
  31.  
  32.  - Bug fixes.
  33.    - fix for restoring breakpoint file on every step/go after a save.
  34.    - fix for trap when setting breakpoint by name.
  35.  
  36.  TCP/IP Setup
  37.  ------------
  38.  
  39.  There are some things you will need to do before using the
  40.  TCP/IP support.
  41.  
  42.  - You need to have TCP/IP installed and running.
  43.  
  44.  - You need to specify a port number in your SERVICES file.  You
  45.    should be able to find this file in the \MPTN\ETC subdirectory
  46.    on the drive where OS/2 is installed.  The entry should look
  47.    like:
  48.  
  49.     sd386     4321/tcp
  50.  
  51.    where 4321 is the port number and tcp is the protocol.  You can
  52.    use whatever port number you wish as long as there is no
  53.    conflict with other well-known services.  Simply browse
  54.    SERVICES and find an available port number.  Use lower case.
  55.  
  56.    You need to do this on both the SD386 and ESP sides of the
  57.    connection.
  58.  
  59.  
  60. -  On the SD386 end of the connection, you need to specify a host
  61.    name in your HOSTS file.  You should be able to find this file
  62.    in the \MPTN\ETC subdirectory on the drive where OS/2 is
  63.    installed.  The entry should look like:
  64.  
  65.    9.51.136.80  clements.cv.lexington.ibm.com  elvis
  66.  
  67.    where elvis is the alias for the foreign address specified by
  68.    the dotted decimal/name addresses.  Use whatever alias name you
  69.    wish.
  70.  
  71.  
  72.  Example Invocation
  73.  ------------------
  74.  
  75.  A typical invocation will look like so:
  76.  
  77.   On the SD386 side of               On the ESP side of
  78.   the connection.                    the connection.
  79.  
  80.   sd386 /telvis mypgm.exe            esp /t
  81.  
  82.   where elvis is the name of the remote machine.
  83.  
  84.  
  85. SD386 Version 4.03
  86. ------------------
  87.  This README.DOC contains the information for the changes made for
  88.  SD386 Version 4.03.  The SD386.INF and SD386 LIST3820 have not
  89.  been updated from previous versions. The only files that have
  90.  changed are SD386.EXE, ESP.EXE, and this README.DOC.
  91.  
  92.  This following enhancements provide some of the fundamental
  93.  support needed for c++.  This version only explicitly supports
  94.  VAC++ symbols.  (I have assumed that C-Set++ and VAC++ symbols
  95.  are the same.  So you should be able to debug C-Set++ as well.)
  96.  
  97.  c vs c++ support.
  98.  ----------------
  99.  
  100.  SD386 does not require any special options for c++. There are no
  101.  additional dlls or installation required.  Simply toss it in your
  102.  tools directory and use it the same way you did for c.
  103.  
  104.  c++ support.
  105.  -----------
  106.  
  107.  Here's basically what you can do:
  108.  
  109.   - put your cursor on an object name(instance of a class) and hit
  110.     the Ctrl-Ins to put the object into the data window.  (This is
  111.     the same as structures in c.)  You can then go to the data
  112.     window(F2) and move the cursor to a member and expand it again
  113.     just as you did in c. Placing the cursor on a data member will
  114.     expand the data and placing the cursor on a method will take
  115.     you to the method.
  116.  
  117.   - In the source view, put your cursor on an object name(instance
  118.     of a class) and hit the ENTER key to go into browse mode. You
  119.     can then expand data members or go to methods just as you do
  120.     in the data window.
  121.  
  122.   - When you are in the implementation file of a class put the
  123.     cursor on a class member name hit ENTER(or INS) to view. The
  124.     "this" ptr is implicit. To see the "this" ptr simply move the
  125.     cursor to a blank space and hit ENTER. You will see the "this"
  126.     ptr. Simply keep hitting ENTER to follow it wherever you want
  127.     to go.
  128.  
  129.   - You can now use wide column vio modes such as 132x50.
  130.  
  131.   - You will now see unmangled names in the call stack.
  132.  
  133.  
  134.  Here are some issues that haven't been resolved:
  135.  
  136.   - GetFunction, FindFunction, and SetFunctionNameBreak are not
  137.     very functional due to the c++ name mangling. This issue will
  138.     be addressed later if there is a need. At this point, expand
  139.     the object and move your cursor to the method you want to go
  140.     to and hit enter, or use GetFile.
  141.  
  142.  c++ object formatting.
  143.  ---------------------
  144.  
  145.     When you show an object the object name will be formatted as
  146.     follows:
  147.  
  148.     object_name   class : public derived_class
  149.                         : public derived_class
  150.                         : public derived_class
  151.  
  152.     Multiple derived classes will be shown for multiple
  153.     inheritance. To browse a derived class, simply put the cursor
  154.     on the derived class and hit ENTER.
  155.  
  156.  c++ member formatting.
  157.  ---------------------
  158.  
  159.     c++ members will be formatted as follows:
  160.  
  161.     prefix    method/data member         data
  162.  
  163.     prefix
  164.     ------
  165.  
  166.       The prefixes for data members are as follows:
  167.  
  168.        "Pri"  - Private
  169.        "Pro"  - Protected
  170.        "Pub"  - Public
  171.  
  172.        "St"   - Static
  173.        "Vt"   - Virtual table ptr
  174.        "Vb"   - Virtual base  ptr
  175.        "Co"   - Const
  176.        "Vo"   - Volatile
  177.        "Se"   - Self-ptr
  178.  
  179.       The prefixes for methods are as follows:
  180.  
  181.        "Pri"  - Private
  182.        "Pro"  - Protected
  183.        "Pub"  - Public
  184.  
  185.        "Ct"   - Constructor
  186.        "Dt"   - Destructor
  187.  
  188.        "St"   - Static
  189.        "In"   - Inline
  190.        "Co"   - Const
  191.        "Vo"   - Volatile
  192.        "Vir"  - Virtual
  193.  
  194.       The prefixes for friends are as follows:
  195.  
  196.        "FriendFnc" - Friend function
  197.        "FriendCls" - Friend class
  198.  
  199.     method/data
  200.     -----------
  201.  
  202.        Methods are formatted as prototypes. These can be very long
  203.        which is the reason wide columns are now supported.
  204.  
  205.        Data members may have suffixes attached to the member names
  206.        as follows:
  207.  
  208.          "...object"
  209.          "...reference"
  210.          "...typedef"
  211.          "...enum"
  212.  
  213.        To expand an object or reference simply put the cursor on
  214.        it and hit ENTER. The typedefs and enums let you see the
  215.        names of these items in the class.
  216.  
  217. =======================================================================
  218. SD386 Version 4.00/4.01
  219. ------------------------
  220.  
  221.  This following enhancements provide some of the fundamental
  222.  support needed for c++ as well as improvements for c development.
  223.  
  224. Support for Source code in include files
  225. ----------------------------------------
  226.  
  227.  You can now use include files just as you would any other source
  228.  file. You can get file views, set breakpoints, step into code
  229.  blocks, save and restore breakpoints, etc. This support has been
  230.  made backward compatible to all the toolsets that have been
  231.  supported by SD386 including IBM C/2, Microsoft C6.00, C-Set/2,
  232.  C-Set++, and the current VAC++.
  233.  
  234.  ( You will also be able to see some of your c++ variables in
  235.    class files but they will be unformatted. Support for symbols
  236.    will come later. )
  237.  
  238. Support for the Alloctext Pragma
  239. --------------------------------
  240.  
  241.  The Alloctext Pragma is used to force functions into specific
  242.  segments.  One of its primary uses is for page tuning
  243.  applications.  Prior to this release SD386 only supported one
  244.  code segment per compile unit.  Now, support is provided for
  245.  multiple code sections.  This support has been made backward
  246.  compatible to 16 bit tools including IBM C/2 and Microsoft C6.00
  247.  and also to 32 bit tools including IBM C-Set/2 and IBM C-Set++.
  248.  You can also debug assembler code at source level with multiple
  249.  code segments.  This maybe be useful for anyone writing 32-16
  250.  thunks.
  251.  
  252.  There are a couple of known problems:
  253.  
  254.   - If you're using IBM C/2 then use the LINK.EXE that comes with
  255.     OS/2.  The one that comes with the toolset doesn't produce
  256.     correct debug info.
  257.  
  258.   - C-Set/2 supports the alloctext pragma;however, the debug
  259.     information generated when the alloctext is used is corrupt.
  260.     The best thing to do in this case is move to the VAC++ level.
  261.  
  262.  
  263. Breakpoint Pulldown Enhancements
  264. --------------------------------
  265.  
  266.  Breakpoints set by function name will now be saved by function
  267.  name.  Prior releases converted function names to a source
  268.  file-line number format causing the breakpoint to go out of sync
  269.  with the source if changes were made to the source file.
  270.  
  271.  There have been some additional miscellaneous fixes for
  272.  breakpoint saving and restoring.
  273.