Enable UI Toolkit bounds checking

WTSupported in traditional Synergy on Windows
WNSupported in Synergy .NET on Windows
USupported on UNIX
VSupported on OpenVMS

The DTK_BOUNDS environment variable enables bounds checking in UI Toolkit.


One of the following values:

0 = Turn off bounds checking.

1 = Generate a fatal error for a level 1 error.

2 = Generate a fatal error for a level 1 error and prompt for level 2 errors (or log them if DTK_BOUNDS_LOG is set).


Setting DTK_BOUNDS catches catastrophic failures whereby a reference exceeds the calling routine’s data space, including such failures as data being overwritten and segmentation violations.


On Windows with traditional Synergy, bounds checking is built into both the default Toolkit library, which is built with -qstrict, and tklib_qcheck.elb, which is built with -qcheck. The Synergy .NET compiler automatically includes bounds checking. However, you may still want to use DTK_BOUNDS, as it has the additional W_PROC check mentioned below, and unlike other bounds checking options, it tells you explicitly when a data area passed to a routine is too small, rather than issuing a generic range error. See Bounds checking for more information.

DTK_BOUNDS can be set at any point before calling U_START to turn on bounds checking in UI Toolkit. To control the bounds-checking behavior after U_START is called, modify the value of g_dtkbounds in WND:tkctl.def. See tkctl.def.

If DTK_BOUNDS is set to 1 or 2 (or anything greater than 0), Toolkit generates a fatal Toolkit error if it encounters a level 1 error, which occur under the following conditions:

If DTK_BOUNDS is set to a value of 2 or greater, a message box opens, enabling you to continue or stop the program for level 2 errors, which occur under the following conditions:

Setting location

The environment. On Windows, this environment variable can also be set in the [synergy], [dbr], or [myprog] section of synergy.ini (where myprog is any .dbr file).

Used by

UI Toolkit

See also


On Windows,