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.
[section name] |
For versions of DOS which support MultiConfig, this option
limits profile processing to the matching MultiConfig section in CONFIG.SYS. |
ADDRHBITS=n |
Bits to use for address hashing (8-12;
default 12). See SWATSYM.DOC. |
ALTSCR |
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. |
BUCKETS=n |
Specify the number of name hashing blocks to allocate (about
1K each). See SWATSYM.DOC. |
CMDHIST=nnn |
Specify the size of the command history buffer used by command
lie recall. Default is 1024. |
COLDBOOT |
Don't write 1234h to warm
boot flag location when rebooting system from within 386SWAT. |
DEBUG=TRIP |
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. |
DVGA |
Use a Dual VGA screen as the secondary monitor. |
GPSKIP=key[,key] |
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
Keyword |
Instruction(s) |
CLI |
CLI |
CRn |
MOV r32,CRn
MOV CRn,r32 |
HLT |
HLT |
IND |
IN AL,DX
IN AX,DX
IN EAX,DX |
INI |
IN AL,immed
IN AX,immed
IN EAX,immed |
INT |
INT xx |
IRET |
IRET
IRETD |
OUTD |
OUT DX,AL
OUT DX,AX
OUT DX,EAX |
OUTI |
OUT immed,AL
OUT immed,AX
OUT immed,EAX |
PPF |
PUSHF
POPF
PUSHFD
POPFD |
STI |
STI |
The keyword ALL covers all of the above options. |
INTRUDE |
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. |
KEYB=cclay |
Use international keyboard whose country code/layout is
cclay. Possible values are
cclay |
Country |
GR129 |
Germany |
SP172 |
Spain |
If your international keyboard is not in this list, read the file KEYBIN.TXT
to see how you can help. |
LCD |
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. |
LOADLOW |
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. |
LOADSYM=filename
[optional] |
Load specified symbol file with optional arguments:
/b=xxxxxxxx |
Optional physical base address in hex |
/h |
Optional HPDA flag (enable DPMI services) |
/li- |
Optional disable of line numbers |
/xl |
Disable larger comparison w/SYMSIZE |
|
LOGSIZE=nnnnn |
Define size of error log in bytes. Default is 4096. |
MONO |
Use monochrome adapter if present. |
NOGD |
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. |
NORMLIDT |
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. |
NOSWAP |
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. |
NOWINK |
Disable Windows Kernel Debugging. |
PASSTHROUGH=xx,xx,xx,... |
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. |
PATH=d:\dir1[,d:\dir2[,...]] |
Specify source file search path (see SWATSYM.DOC). |
PORTINIT=string |
Initialize serial port. String may contain any character
except semicolon, including the following escape sequences:
\\ |
Send backslash. |
\r |
Send CR. |
\b |
Send a break signal (this is a hardware signal, not a character). |
\p |
Pause for about 250ms. |
\1 - \0 |
Delay for 1 - 10 seconds. |
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. |
PRO=d:\path\filename.ext |
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 386MAX. |
PROXSRCH=r[,g] |
Set range and granularity for proximity searching on symbol
addresses. See SWATSYM.DOC. |
PS4=xxxx |
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. |
RMLIDT |
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 CONFIG.SYS processing. |
SAVESCREEN=nnn |
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. |
SETCOM=port,bps[,itype[,portbase]] |
Specify port to use for remote debugging.
port |
From 1-4
for COM1 through COM4. |
bps |
Transfer rate, from 1 to 115200. |
itype |
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. |
portbase |
UART port base if different from defaults: COM1=3F8,
COM2=2F8, COM3=3E8,
COM4=2E8. |
|
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
SYMFILTER=__imp__ _
Up to 128 characters can be specified in this way. |
SYMSIZE=nnnnn |
Specify the number of bytes to reserve for the symbol table.
The default size is 4096. See SWATSYM.DOC. |
TRAPBOUND |
Trap BOUND instruction interrupts, ignoring INT 05h. |
TRAPDEBUG |
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. |
TRAPDIV |
Trap divide overflow interrupts. |
TRAPGENP |
Trap General Protection Faults (toggle via Alt-F3). |
TRAPINV |
Trap Invalid Opcode interrupts (toggle via Ctl-F3). |
TRAPNMI |
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). |
TRAPPAGE |
Trap Page Faults (toggle via Alt-F4). |
TRAPSEGNP |
Trap Segment Not Present Faults. |
TRAPSKIP |
Trap INT 03h instructions (toggle via Ctl-F2). |
TRAPSTACK |
Trap Stack Faults (toggle via Ctl-F4). |
TRAPSTEP |
Trap INT 01h breakpoints (toggle via Ctl-F1). |
TRAPTSS |
Trap TSS Faults. |
VCPISWAT |
Do not attempt to intrude into another memory manager's
PL0 context. This option disables the default INTRUDE
option. |
VIDEO=d:\path\filename.ext |
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. |
VMSCOUNT=n |
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. |
VMSINT[=xx,xx,...] |
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 00, 01,
02, 03, 05,
06, 0A, 0B,
0C, 0D, and
0E. |
WKDLS=nnn |
Reserve space for nnn WKD load segment
entries. |