Configuring tools.ini

The file tools.ini contains information to initialize the command-line debuggers. On startup, the debugger searches for the appropriate section header in the tools.ini file and extracts initialization information from the entries under the header. Each command-line debugger has its own section header - [CDB], [NTSD], and [KD]. The environment variable INIT must point to the directory containing the tools.ini file.

WinDbg does not use the tools.ini file. Instead, WinDbg saves initialization settings in workspaces.

The tools.ini entries are shown in the following table.

Keywords must be separated from the values by white space or a colon. Keywords are not case-sensitive.

For TRUE or FALSE values, "FALSE" is the only false value. Anything else is TRUE.


$u0: value ... $u9: value

Assign values to fixed-name aliases. You can specify numeric values n or 0xn or any other string. See Using Aliases for details. No command-line equivalent.

DebugChildren: flag

TRUE or FALSE. If TRUE, CDB debugs the specified application as well as any child processes that it might spawn. Command-line equivalent is -o.

DebugOutput: flag

TRUE or FALSE. If TRUE, CDB sends output and receives input through a terminal. If FALSE, output goes to the user screen. The command-line option -d is similar but not identical.

IniFile: file

Specifies the name of the script file that CDB or KD takes commands from at startup. The default is the ntsd.ini file in the current directory. Command-line equivalent is -cf. For details, see Using Script Files.

LazyLoad: flag

TRUE or FALSE. If TRUE, CDB performs lazy symbol loading; that is, symbols are not loaded until required. Command-line equivalent is -s.

For details, and other methods of setting this option, see Deferred Symbol Loading.

SetDll: filename

Set extension DLL. The .dll filename extension should be omitted. Default is userexts.dll. Command-line equivalent is -a.

For details, and other methods of setting this default, see Loading Debugger Extension DLLs.

StopFirst: flag

TRUE or FALSE. If true, CDB stops on the breakpoint at the end of the image-loading process. Command-line equivalent is -g.

StopOnProcessExit: flag

TRUE or FALSE. If TRUE, CDB stops when it receives a process termination notification. Command-line equivalent is -G.

sxd: event
sxe: event

Sets the debugger response and the handling status for the specified exception or event.

Exceptions and events may be specified in the following ways:

*: Default exception
n: Exception n (decimal)
0xn: Exception 0xn (hexadecimal)
(other): Event code

See Controlling Exceptions and Events for details of this process and for other methods of controlling these settings.

VerboseOutput: flag

TRUE or FALSE. If TRUE, CDB will display detailed information about symbol handling, event notification, and other run-time occurrences. Command-line equivalent is -v.

lines: flag

TRUE or FALSE. The lines flag enables or disables support for source-line information.

srcopt: options

Sets the source line options that control source display and program stepping options. For more information see l+, l- (Set Source Options).

srcpath: directory

Sets the source file search path. For more information see .srcpath, .lsrcpath (Set Source Path).

enable_unicode: flag

TRUE or FALSE. The enable_unicode flag specifies whether the debugger displays USHORT pointers and arrays as Unicode strings.

force_radix_output: flag

TRUE or FALSE. The force_radix_output flag specifies whether integers are displayed in decimal format or in the default radix.

col_mode: flag

TRUE or FALSE. The col_mode flag controls the color mode setting. When color mode is enabled the debugger can produce colored output. By default, most colors are not set and instead default to the current console colors.

col: name colspec

The name indicates the element that you are coloring. The colspec is a three-letter RGB indicator of the form [rR-][gG-][bB-]. A lower-case letter indicates darker, an upper-case letter indicates brighter and a dash indicates no color component contribution. Due to console color limitations, bright is not actually per-component, but applies to all components if any request bright. In other words, rgB is the same as RGB. For this reason, it is recommended that all caps be used if any caps are going to be used.

Example usage:

col: emphfg R--


A sample [NTSD] section in the tools.ini file follows:

sxe: 3c
sxe: cc
$u0: VeryLongName



Send comments about this topic to Microsoft