The following profile options are recognized by 386SWAT. Options
may be entered in upper and/or lower case. See the file 386SWAT for a list you can
use already in profile format.
||For versions of DOS which support MultiConfig,
this option limits profile processing to the matching
MultiConfig section in CONFIG.SYS.
||Bits to use for address hashing (8-12; default
12). See SWATSYM.DOC.
||Display debugging information on the screen other
than the current one being used. That is, in a two monitor
system, if the current screen uses the color adapter, display
debugging data on the monochrome screen and vice versa. This
option is valid only if we detect that there are both a color
and monochrome adapter in the system. Otherwise, it is
ignored. Note that the screens can be swapped via Alt-F7.
An alias for this option is /A.
||Specify the number of name hashing blocks to
allocate (about 1K each). See SWATSYM.DOC.
||Specify the size of the command history buffer used
by command line recall.
Default is 1024.
||Don't write 1234h
to warm boot flag location when rebooting system from
||Use triple fault method of rebooting. Sometimes a
system doesn't reboot when using the 8042 method (the default), so
here's another way to skin the cat.
||Use a Dual VGA screen as the secondary monitor.
||If a GP Fault occurs on any of the instructions
named in the list, do not signal this to 386SWAT. This option
allows you to trap GP Faults but filter out ones which may
commonly occur but not be of interest. The key values (GP Skip
instructions) supported are
The keyword ALL covers all of the
||Attempt to intrude into another memory manager's
PL0 context. If this is successful, 386SWAT appears as a PL0
debugger in the context of the memory manager. This option is now
the default. To disable this option, use VCPISWAT.
||Use international keyboard whose country
code/layout is cclay. Possible values are
If your international keyboard is not in this list, read the file
KEYBIN.TXT to see how you can help.
||Specify that an LCD screen is present (and 386SWAT
uses the LCD screen attributes). Does anyone know how to detect
this case under program control? I would prefer not to require the
user to tell us what the screen is like.
||Tell 386MAX it's not OK to load us into extended
memory after INIT_REAL and to relocate our INIT_VIRT code. It's
highly unlikely you'll need this option.
||Load specified symbol file with optional
||Optional physical base address in hex
||Optional HPDA flag (enable DPMI services)
||Optional disable of line numbers
||Disable larger comparison w/SYMSIZE
||Define size of error log in bytes. Default is
||Use monochrome adapter if present.
||Because some programs may reset the debug
registers which you've carefully setup, 386SWAT automatically
sets the Global Debug (GD) bit in DR7 on startup so that we can
stop such programs before they can do any harm. In case you
don't want 386SWAT to do this, use this keyword.
||Disable Real Mode LIDT redirection. Device
386SWAT uses a separate IDT to handle nasty bugs which write
into the Real Mode IDT at 0:0 such as DOS 6.x does during its
transient CONFIG.SYS processing. This is the default
state. Use RMLIDT to find this kind of bug.
||Don't restore the previous underlying screen when
single-stepping. This option is useful in conjunction with the
ALTSCR option. This option specifies the
initial state only. It can be toggled via Alt-F6.
||Disable Windows Kernel
||Allow one or more hardware interrupts to be
passed through to the previous protected mode handler while
386SWAT is active. Currently, these are limited to 76, 77,
0B, and 0C. THIS OPTION SHOULD NOT BE USED UNLESS
NECESSARY. For example, when the IBM PS/2 SCSI adapter (8EFE or
8EFF) is used, staying in 386SWAT for more than 1 or 2 minutes
will cause the hard disk to lock on the next disk access.
PASSTHROUGH=76 will allow one to
stay in 386SWAT indefinitely.
||Specify source file search path (see SWATSYM.DOC).
||Initialize serial port. String may contain any
character except semicolon, including the following escape
SETCOM must be specified to set the
parameters for the serial port. On the first entry to 386SWAT
(which may be remotely triggered) 386SWAT will automatically
try to connect for remote debugging.
||Send a break signal (this is a hardware signal, not a
||Pause for about 250ms.
||Delay for 1 - 10 seconds.
||Read subsequent command line options from a
profile. Just as with 386MAX, as you append more and more
options to the 386SWAT command line, you may prefer to collect
them all in a 386SWAT profile, one per line. These options may
be followed by a semicolon and a comment. This profile is
handled exactly the same way as is the corresponding profile for
||Set range and granularity for proximity searching
on symbol addresses. See SWATSYM.DOC.
||Periscope 4 hardware debugger board is installed
at I/O port xxxx (for reference, the factory setting is
300h). This feature allows 386SWAT to manage the traceback
buffer and other features of the Periscope Company's 386
hardware debugger. *NOTE* this feature isn't finished.
||Enable Real Mode LIDT redirection. Device 386SWAT
uses a separate IDT to handle nasty bugs which write into the
Real Mode IDT at 0:0 such as DOS 6.x does during its transient
||Specify the number of last screens to save. This
keyword allows you to control how many screens back Alt-F10
can display. The default is sixteen. Each screen consumes 4000
bytes of storage in extended memory.
||Specify port to use for remote debugging.
||From 1-4 for COM1 through COM4.
||Transfer rate, from 1 to
||Interrupt mode. May be 3
or 4 to specify IRQ
(default is IRQ3 for COM2/COM4, IRQ4 for COM1/COM3),
* for default, or p
for polled operation. Currently, an IRQ line
is required for remote debugging.
||UART port base if different from defaults:
|SYMFILTER=text1 [text2 [...]]
||Some symbols, especially from Windows programs
written in C, are prefaced with text such as "__imp__", "_", and
the like which adds to the symbol's length but not
understanding. This feature allows you to specify in the 386SWAT
profile leading text which is to be stripped from each symbol.
The default settings are
Up to 128 characters can be specified in this way.
||Specify the number of bytes to reserve for the
symbol table. The default size is 4096. See SWATSYM.DOC.
||Trap BOUND instruction interrupts, ignoring
||Intercept INT 01h/03h at installation time. Normally, 386MAX
directs protected mode occurrences of INT
01h/03h to 386SWAT and real
mode occurrences to the real IDT handler. This options causes
all such interrupts to be handled by 386SWAT. This feature may
be toggled via Alt-F1.
||Trap divide overflow interrupts.
||Trap General Protection Faults (toggle via Alt-F3).
||Trap Invalid Opcode interrupts (toggle via Ctl-F3).
||Trap Non-Maskable Interrupts. This option is
useful in conjunction with a hardware breakout switch which can
be used to invoke the debugger even if all interrupts are
disabled (toggle via Alt-F2).
||Trap Page Faults (toggle via Alt-F4).
||Trap Segment Not Present Faults.
||Trap INT 03h
instructions (toggle via Ctl-F2).
||Trap Stack Faults (toggle via Ctl-F4).
||Trap INT 01h
breakpoints (toggle via Ctl-F1).
||Trap TSS Faults.
||Do not attempt to intrude into another memory
manager's PL0 context. This option disables the default
||Read in/write to video tables. If the specified
file exists, it is read in and used as video table information.
If the file doesn't exist, it is created. The information in the
video table specifies how to switch to particular video modes as
well as how to set certain cursor types. Use this option if you
wish to bring up 386SWAT on top of graphic applications on
single-monitor systems. *NOTE* this option doesn't fully work as
yet, so I suggest that you don't use it.
||Used with VMSINT. Limit number of times 386SWAT
inserts itself into a VCPI client's GDT/IDT. This may be useful
when debugging VCPI applications that call Enter Protected Mode
(AX=DE0C) repeatedly, such as a
real-mode INT 08h handler that enters
protected mode on every clock tick. The correct value may have
to be determined by trial and error.
||Trap VCPI Enter Protected Mode switches
(AX=DE0C) and blast in
sufficient GDT and IDT entries to debug the client application.
This option is useful when debugging a VCPI application which
does not follow the preliminary VCPI debugger specification. Use
this option with care. The argument (if present) limits the
intercepted interrupts to the values. When VMSINT is in effect, it may be important
to limit the interrupts. For example, some DOS16M apps (such as
Lotus 1-2-3 Version 3.0) intercept interrupts but don't set the
access rights byte in the IDT (they assume that it's still set
for a 286 interrupt gate, as DOS16M setup originally). Thus when
386SWAT blasts its task gate entries into the IDT, subsequent
DOS16M intercepts leave those entries marked as a task gate.
This debug option limits us to intercepting those faults
necessary to catch catastrophic errors, but not everything.
Interrupts which may be intercepted are
||Reserve space for nnn WKD
load segment entries.