NuMega SoftICE Release Notes
NuMega SoftICE 4.05 Release Notes
-----------------------------------------------------------------
Table Of Contents
- What�s New in SoftICE 4.05 (versus 4.0)
Event viewing for BoundsChecker memory events (EVMEM command)
Using SoftICE on a System without a Keyboard or Monitor
Numerous bug fixes - Known Anomalies in version 4.05
- Setting Up Remote Debugging
- System Requirements
- Installation
- SoftICE Video Troubleshooting Tips
- Quick Start to Debugging
- Using SoftICE with Windows 2000
- Using Multiple Monitors with Windows 98 and Windows 2000
- Debugging Display Drivers with Windows 98
- Using SoftICE with Visual C++ 5.0 and Visual C++ 6.0
- Using SoftICE with Borland C++ Builder
- Known Anomalies
- Troubleshooting Tips
- Reporting Problems And Suggestions
What�s New in SoftICE 4.05 (versus 4.0)
Minor Features/Enhancements/Bug fixes in version 4.05
This is advantageous in situations when SoftICE does not support the video card, keyboard, or mouse on the local machine, or when you are debugging drivers for those hardware components. You must remotely connect to the debugger over the serial port or network when running in headless mode. Configuring SoftICE to run in headless mode ensures that SoftICE does not interact with keyboard, mouse, or video hardware in any way. This would be advantageous in situations when SoftICE does not support the video card, keyboard, or mouse on the local machine, or when you are debugging drivers for those hardware components.
Enabling support for SoftICE on a system without a keyboard or monitor involves setting one of two registry values. To disable SoftICE video support, under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ntice, create a DWORD registry value "NullVGA" and set it equal to "1". To disable the keyboard, create a DWORD value "NullKeyboard" in the same location and set it to "1".
Known Anomalies in Version 4.05
- Configure the mouse to use the Standard PS\2 drivers which are supported.
- Run SoftICE in headless mode remotely over the serial port or network.
Setting Up Remote Debugging
To install the SoftICE drivers on Windows NT:
- Open Control Panel. Double-click Network.
- Select Adapters. Remove the existing driver, then Add the driver. Click Have Disk when prompted. Windows NT might prompt you to reboot.
- Browse to the dialog box to the SoftICE\Network\NE2000 or SoftICE\Network\3C90X directory of your DriverStudio install. Then click OK to install the new driver.
To install the SoftICE drivers on Windows 98 or Windows 95:
For NE2000 or compatible:
- Make a backup copy of NE2000.SYS in the \WINDOWS\SYSTEM directory
copy \WINDOWS\SYSTEM\NE2000.SYS \WINDOWS\SYSTEM\NE2000.ORG
- Copy the file NMNE2K4.SYS from the DriverStudio\SoftICE\Network\NE2000 directory over the NE2000.SYS file in the \WINDOWS\SYSTEM directory.
copy "\Program Files\NuMega\DriverStudio\SoftICE\Network\NE2000\NMNE2K4.SYS" \WINDOWS\SYSTEM\NE2000.SYS
- Reboot the system
For 3C90X using EL90XND4.SYS:
- Make a backup copy of EL90XND4.SYS in the \WINDOWS\SYSTEM directory
copy \WINDOWS\SYSTEM\EL90XND4.SYS \WINDOWS\SYSTEM\EL90XND4.ORG
- Copy the file NM90XND4.SYS from the DriverStudio\SoftICE\Network\3C90X directory over the EL90XND4.SYS file in the \WINDOWS\SYSTEM directory.
copy "\Program Files\NuMega\DriverStudio\SoftICE\Network\3C90X\NM90XND4.SYS" \WINDOWS\SYSTEM\EL90XND4.SYS
- Reboot the system
For 3C90X using EL90XBC4.SYS:
- Make a backup copy of EL90XBC4.SYS in the \WINDOWS\SYSTEM directory
copy \WINDOWS\SYSTEM\EL90XBC4.SYS \WINDOWS\SYSTEM\EL90XBC4.ORG
- Copy the file NM90XBC4.SYS from the DriverStudio\SoftICE\Network\3C90X directory over the EL90XBC4.SYS file in the \WINDOWS\SYSTEM directory.
copy "\Program Files\NuMega\DriverStudio\SoftICE\Network\3C90X\NM90XBC4.SYS" \WINDOWS\SYSTEM\EL90XBC4.SYS
- Reboot the system
System Requirements
For All Systems:
- 5 MB disk space required
- 2.5 MB disk space optional (Adobe Acrobat Reader for on-line manuals)
- Microsoft-compatible Serial or PS/2 mouse (optional)
- Single monitor and an additional monochrome monitor are supported
- Remote debugging is supported for NE2000-compatible or 3Com network cards
For Windows 95 and Windows 98:
- Windows 95 and Windows 98
- 16 MB RAM minimum (32 MB recommended)
For Windows NT and Windows 2000:
- Intel x86 uniprocessor or Intel-standard SMP system
- For Windows NT, release 4.0 (Build 1381)
- 32 MB RAM minimum (64 MB recommended)
- Installation account with administrator privileges
Installation
SoftICE Video Troubleshooting Tips
For the most current Video Troubleshooting Tips, please visit our on-line Knowledge Base on the Support section of our web site at:
http://www.numega.com/support/knowledgebase/query.asp
Beginning with version 3.2, SoftICE (95/NT) supports more video devices than ever before by taking advantage of Microsoft DirectX technology. This will allow SoftICE's Universal Video Driver (UVD) to work with virtually all new video cards supported by ActiveX/Direct Draw.
NOTE: Both the video card AND the video card driver must support DirectDraw in order to the UVD to work.
If you are having trouble getting SoftICE to run with your video card AND it supports Direct Draw technology:
- Run the SoftICE Display Adapter Setup
- From the manufacturers list, select STANDARD VGA
- Check the Universal Video Driver (UVD) box
- Press the TEST button to confirm that this setup works.
If this does not work and you are sure that your video card supports DirectDraw, then we recommend that you try:
- Downloading and installing the most current version of your video card driver provided by the card manufacturer. Updated drivers usually add support for DirectDraw to cards that support it.
- For NT, try changing the SoftICE startup to either Automatic or Manual mode
If you are unable to use SoftICE with your video card AND it supports DirectX, please provide us with the following information:
- What startup mode are you using (boot, system, automatic or manual)?
- From Windows 95 or Windows NT, press START and go CONTROL PANEL / DISPLAY / ..., and provide us with:
Adapter type:
Manufacturer:
Version Numbers:
ADAPTER INFORMATION
Chip Type:
DAT Type:
Memory Size:
Adapter String:
BIOS Info:
If your video card does not support Direct Draw:
- Download and install the most current version of your video card driver provided by the manufacturer
- Download and install the last version of the SoftICE legacy video drivers from our FTP site at:
- Run the SoftICE Display Adapter Setup and reselect your card.
ftp://ftp.numega.com/anonymous/tech/
Files:
Windows 95: SIWVID95.ZIP
Windows NT: SIWVIDNT.ZIP
Other options which are detailed in the users guide, include the ability to use SoftICE:
- with a second MONOCHROME monitor and a Hercules-compatible card,
- through a serial cable connection, or
- in STANDARD VGA mode. To use SoftICE in Standard VGA mode you must:
- From the OS Display utility, change your display adapter to:
- From the SoftICE display adapter setup, set SoftICE to Standard VGA and DO NOT check the Universal Video Driver
Manufacturer: Standard Display Types
Display: VGA Compatible Display Adapter
If none of these options work for you, then we highly recommend that you obtain a newer video card which supports Direct Draw. Please note that NuMega will no longer create custom drivers to support new video cards. All new video card support will be handled through Direct Draw drivers. This will allow SoftICE to work with virtually all new video cards supported by Direct Draw.
Quick Start to Debugging
Other features to check in the new symbol loader:
- Module-Settings (symbol translation and debug options for your module)
- Module-Translate (creates a .NMS file for pre-loading at start up)
- Edit-SoftICE Initialization Settings (replaces WINICE.DAT)
- File-Load Exports (loads exported symbols for DLLs you select)
- File-Save SoftICE History (replaces WLOG and DLOG)
Using SoftICE with Windows 2000
WINDOWS 2000 is a beta operating system. Unfortunately, this means that the subtle changes to Windows 2000 internals between interim builds can break key functionality in SoftICE. We have tested SoftICE for NT version 4.0 with specific builds of Windows 2000 (builds 1946, 2000 2021, and 2031). SoftICE is supported with known limitations on these builds. Refer to Nt5Boot.txt for in the SoftICE directory for more information about using SoftICE on Windows 2000.
There are different manual configurations that can be made to SoftICE to increase the chance of supporting builds other than 1946, 2000, 2021, and 2031. However, support cannot be guaranteed on builds of Windows 2000 other than 1946, 2000, 2021, and 2031 at this point.
Here is a list of changes that must be made for Windows 2000 support.
- Problems with file system access in boot drivers have been fixed for RC2 (all builds after 2128). It is no longer necessary to run ICEPACK.exe.
- If using an Windows 2000 build other than build 1946, 2000, 2021, or 2031, you will need to do the following. Place the NTSYMBOLS=ON keyword on a separate line in winice.dat, and automatically load symbols for NTOSKRNL. This keyword will allow SoftICE to use the kernel symbols for hooking key routines and data. Be sure that the symbols being loaded are properly matched to the build of NTOSKRNL.exe. The method that SoftICE uses alternatively is impacted by binary changes in the NTOSKRNL module. sing symbols eliminates this impact. Automatic loading of symbols is done via the Symbol Loader (Loader32.exe) Edit|SoftICE Initialization Settings menu item. Symbols for NTOSKRNL are provide in the form of a ntoskrnl.dbg file. This file can be translated, using the Loader32.exe or nmsym.exe, to create a .nms file. NOTE: The debug binaries for Windows 2000 are built with VC 6.0. Place the file 'mspdb60.dll' in the path to translate symbols for this and later builds. This file is located on setup CD 1, in the Common\MSDEV98\BIN directory.
- Keyboard support will most likely break in builds of Windows 2000 that are not specifically tested. This is due to the fact that the SoftICE keyboard driver patching is dependent on particular binary images. For keyboard support on builds of Windows 2000 that are not specifically tested, download the i8042prt.sys driver on ftp.numega.com\anonymous\tech. Replace the driver currently installed on your system with the downloaded driver (please backup the original driver). This version of the driver is supported. It is simply the i8042prt.sys driver from a build that is specifically supported.
- It is necessary to disable the boot GUI that was added in Windows 2000 (NT 5.0) build 1814. There have been some cases where the boot GUI causes problems with SoftICE's VGA support. SoftICE will not be able to popup in VGA or text mode if the boot GUI is not disabled. Here is an example of boot.ini with a /noguiboot switch.
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 5.00" /
Using Multiple Monitors with Windows 98 and Windows 2000
Windows 98 and WINDOWS 2000 support multiple display devices. One of the devices, called the primary display, supports VGA (this is the device that is active at boot time); the other devices run with VGA disabled.
In the video setup phase of the installation, be sure to select the device being used as the primary video card. For example, if you're using an S3 card as the primary display and an ATI card as the secondary display, tell SoftICE to use the S3 card.
Specifying Which Monitor to Use
When the Universal Video Driver is in use, it is possible to control which monitor SoftICE will use. Add a line to WINICE.DAT such as this:
MONITOR=1
This tells SoftICE to use the "second" monitor. Other numbers (0, 1, 2, etc) can be used to select the desired display.
When Using WINDOWS 2000 if you install or uninstall a video card, be sure to run the SoftICE video setup program after a successful reboot in your new configuration.
Debugging Display Drivers with Windows 98
With Windows 98 there can be multiple display drivers loaded simultaneously, and multiple instances of display drivers. Unfortunately, all these drivers have the same module name, DISPLAY, so SoftICE doesn't know which driver it should associate with the symbol table. The symbol table will be associated with the first driver loaded, which may not be the one you want to debug.
There are two solutions to this problem:
- Don't load multiple display drivers or display driver instances unless it's really necessary.
- Use the SYMLOC command to tell SoftICE which module it should associate with the symbol table, as follows:
SYMLOC [hmod]
Where hmod is a module handle (a 16-bit number). Use the MOD command (e.g. MOD DISPLAY) to get a list of the loaded display drivers and their handles.
Using SoftICE with Visual C++ 5.0 and Visual C++ 6.0
When linking, the /PDBTYPE:CON option must be used (/PDBTYPE:SEPT is not supported). To set this option from the IDE, go to the Link tab of the project settings, select Category "Debug", and ensure that the "Separate types" option is NOT selected.
Do not select the "Program Database Edit and Continue" debug info option. On the command-line, do not use the /ZI, rather use /Zi.
Notes for building VxDs with VC++ 5.0:
- You MUST use link V4.1 or later. Earlier versions do not emit debug information properly.
- You must NOT link using the /PDB:NONE option. If you link with /PDB:NONE you will not get any debug information
Using SoftICE with Borland C++ Builder
C++ Builder stores the Borland debug information in .TDS files separate from the executable. TDS files are also produced by the TDSTRP32 utility. To load symbols and source into SoftICE, simply use the Symbol Loader to load the .TDS file. If you want to load the executable from the Symbol Loader that must be done afterward as a separate step. Alternatively, you could set the desired breakpoints and then load the executable normally.
Known Anomalies
- You start SoftICE for Windows NT manually, and you are NOT in full-screen (VGA) mode.
- You are using the universal video driver.
- You do not have an "X;" at the end of your SoftICE INIT string.
If all these conditions are met, SoftICE will start but will be invisible. Press Control-D to regain control of the system. The next time you hit Control-D SoftICE should pop up normally. The reason for this anomaly is that the SoftICE universal video driver can't begin to operate until at least one command has been passed to the display driver. None of this applies to SoftICE for Windows 95.
- When debugging 16-bit programs, ? <variable> and WATCH <variable> are not supported. However, the locals window is fully functional.
- The NT 3.51 checked build crashes when SoftICE is loaded using the default winice.dat file. To fix the problem, change winice.dat as follows:
- Add the line: mouse=off
- If you are using a mouse in SoftICE, add "set mouse on" to your INIT string. Example: init="set mouse on;X;"
- SoftICE 3.2 for Windows 95 is not compatible with BoundsChecker for Windows 3.x (16-bit).
- The Windows 95 shutdown option Restart computer in MS-DOS mode is not supported when running oftICE. Loading SoftICE after choosing this option causes the system to become unstable and eventually crash. To return to MS-DOS after you shut down Windows 95, set BOOTGUI=0 in MSDOS.SYS (really an ini file with hidden, read-only, system attributes). Then use Shutdown the Computer to restart your system.
- Windows NT becomes unstable when it runs low on non-paged memory. This can occur if you load many symbols and source files. Use Symbol Loader-Help-About Symbol loader to monitor SoftICE memory usage. You may need to be selective about how much information you load into SoftICE. SoftICE loads all source files by default. To limit the source files, list the files to be loaded in a .SRC file with the same name as your module. Put the .SRC file in the same directory with your executable.
Troubleshooting Tips
- In the Registry, create a reg_sz under the ntice service key called InstalledDisplayDrivers and set this value to G400D. If you are running SoftICE as a boot/system driver, this should be all you need to do.
- If you want to run SoftICE in automatic/manual mode, you need to also add an entry to the G400\Device0 service key. Underneath this entry, create a reg_multi_sz called InstalledDisplayDrivers and set it to G400D.
HKLM\System\CurrentControlSet\Control\Session Manager\Memory Managment\EnforceWriteProtection = 1
SoftICE does not load when you set this value.
- Disable Num Lock and Caps Lock programming
If the erratic behavior persists in Windows NT, select this Troubleshooting option as well:
- Do not patch keyboard driver
- Type CTRL-M in SoftICE. You may need to do this a few times.
- Switch to a full screen DOS box in Windows NT.
- Use SET MOUSE OFF, followed by SET MOUSE ON, in Windows 95.
Known Problems Related to Watcom C++
Windows 95 OSR2 Crash Problem Related to 3Com Ethernet card
A crash during system startup may occur when using the NDIS3 miniport driver on the EtherDisk v2.1x for the 3Com EtherLink and Fast EtherLink XL cards with Windows 95 OSR2. This is caused by a memory management problem in the 3Com driver when running under Win95-OSR2. Although not related to SoftICE, this problem is more likely to manifest itself when SoftICE is loaded.
An updated Ethernet driver (currently in beta) which resolves the problem is available from 3Com.
Reporting Problems And Suggestions
On June 15, 1998, NuMega launched a free Web-based Knowledge Base to assist our customers 24 hours a day! At no charge, users can access this service via the Support section of our web site at: