DEBUG.TXT                          Copyright (c) 1996 xTech Ltd
----------------------------------------------------------------

                 Native XDS-x86 OS/2 Edition
                 ---------------------------
                     v2.17 (pre-release)

                       Debugging notes


1. Using third-party debuggers
------------------------------

XDS produces machine code of high efficiency due to advanced code
generation scheme but it makes very difficult to provide adequate
debugging information. Now XDS compiler can output in an object file
line numbers of the source file and information on program procedures
and global variables. When appropriate options switched on, compiler
generates object files with debugging information in well known
CodeView format.

So you can use any debugger accepting this information. We have
experience with Watcom's debugger WD and IBM's debugger IPMD.
In the first case you have to link executable by Watcom's linker
WLINK (don't fogget to include option "debug codeview") and
then process EXE-file by CVPACK utility.
In the second case you have to use LINK386 with option /CO.

Note that lacks in debugging information restricts some features
of the debuggers.


2. Obtaining a call chain in the case of a program crash
--------------------------------------------------------

XDS run-time support system includes special subroutine wich generates
"errinfo.xds" file in the current directory on any abnormal program
termination. This file includes name of EXE-file and a call chain at
the moment of crash. The HIS utility (BIN\his.exe) decodes this
information using program's map-file and outputs a list of procedure
calls in the terms of source file names and line numbers.


Related compiler option:

+LINENO      - to include source file line numbers in the object file

+GENDEBUG    - to include debuggin information on program procedures
               and global variables

+GENHISTORY  - to include in MAIN module of a program call to RTS sub-
               routine whitch generates "errinfo.xds" on any crash of
               your program. This file contains a sequence of procedure
               calls at the program abortation.

                          [end of document]
