Compuware SoftICE

Release 2.7

Note:  You can verify that you have Release 2.7 installed on your computer by issuing the ver command at the SoftICE command line prompt.

 

CONTENTS

 

What is SoftICE?

SoftICE is a powerful system-wide debugger that supports source level debugging of any software, driver, service, and most bios code on either a single or dual machine configuration.

 

What's New in This Release?

Note:  See the Readme Archive for SoftICE commands and features introduced in previous versions.

SET TYPEFORMAT 1 is <type> <variable name> = <value>     

SET TYPEFORMAT 2 is the default <variable name> <type> = <value>    

SET TYPEFORMAT 3 is  <variable name> = <value> <type>.

 

Return to:

CONTENTS

 

Where to Find Help and Documentation

Note:  SoftICE documentation is presented in Adobe PDF format. If you have not yet installed the Adobe Acrobat Reader on your system, you can find the setup at http://www.adobe.com/products/acrobat/readstep2.html.

SoftICE Documentation

 

Return to:

CONTENTS

 

Important Notes

 

Return to:

CONTENTS

 

SoftICE Support of Unreleased OS Versions

Overview

By its nature, SoftICE requires extensive knowledge of both internal OS data structures and function signatures and relative locations. When a new version of the Operating System is released, both of these bits of information usually change and require a rebuilding of SoftICE after the proper OS data structures are "reverse-engineered." Starting with Release 2.7 of SoftICE, this information has now been moved to a supporting data file. This data file is located in your drivers directory and is called “osinfo.dat”(released operating systems) or “osinfob.dat”(beta operating systems). The data file will be updated as "hotfixes" are released from Microsoft and whenever future versions of the OS are released. The new data file can be obtained by contacting Technical Support or by going to Compuware's DriverStudio website.

Coping with API Hook Failures

In certain circumstances, the OS data structures remain the same, yet the function signature and relative locations have changed. In these cases, you will see API Hook Failures displayed in the SoftICE command window. When these failures occur, SoftICE will not function properly depending upon which API Hook failed. A solution is provided for this situation:

  1. Load up the “SoftICE Settings” application.

  2. Go to the “Advanced” page.

  3. Add an entry of NTSYMBOLS=ON.

  4. Get the symbols for ntoskrnl.exe and translate them to NMS format. You can either use the Symbol Retriever utility to get the correct symbols, or get them from the Support CD provided by Microsoft.

  5. Go to the “Symbols” page and add in the ntoskrnl.nms that you've just translated.

  6. Now, reboot your machine.

You should have no hook failures at this point. If you still have hook failures or are unable to locate symbols, another option is available. This option requires that you set registry entries. Contact Technical Support for additional information.

 

Return to:

CONTENTS

 

Secondary VGA Monitor Debugging

Overview

Recently, there has been some concern over the disappearance of 'mono monitors', for mono monitors have always been an important part of the SoftICE development process. These monitors are needed because they allow real-time debug print-style messages, module loads, unloads, and SoftICE informational messages to be displayed. In the past, it was possible to work around this by using two VGA video cards in the same system (as long as one of the VGA video cards had a "VGA Disable" jumper located on it). At some point in time, due to various reasons, video card manufacturers stopped putting VGA disable jumpers on their cards. This now makes it impossible to boot into Windows with VGA Mode on one monitor and Windows High Res Mode on the other. (The condition is due in part to Windows as well as BIOS requirements.)

Definitions

Note:  These definitions relate to two VGA card usage.

Installation

Note:  The following installation has only been tested with Windows displaying its desktop on the AGP video card and with SoftICE using the PCI video card.

Use the following procedure to set up your system for debugging.

  1. Depending on your BIOS, you may need to change the settings first.

    a.  If you receive a BIOS error beep code (typically one long beep followed by two short beeps), you will need to power down, remove one video card, and then reboot.  

    b.  Upon reboot, enter your BIOS setup. From here you will need to find your video configuration settings. It is typically on the Advanced page.  

    c.  In the Video Configuration settings will typically be an entry entitled "Primary" or "Primary Video". Choose PCI.  

    d.  Save your configuration and reboot.  

    e.  Now power down your machine and reinstall your PCI video card.

  2. Boot into Windows.  

    a.  At this point in time, you should see the VGA screen which has the OS loader message (i.e., the output from /sos) and the Windows Desktop displayed on your AGP video card. (If you see a DOS text screen on one monitor and the Windows desktop on the other monitor, proceed to Step 3.)

    b.  If you see the Windows desktop on both machines, you will need to make an additional change to Windows. Right-click on the desktop, choose properties; then, choose Settings.  

    c.  On the Settings page, choose the PCI monitor by clicking on the proper monitor.

    d.  Uncheck "Extend my Windows Desktop onto this monitor".

  3. Go to the SoftICE configuration page in the Configuration dialog and select Video Settings.

    a.  Deselect Universal video driver and choose Full Screen VGA.

    b.  For Video Driver, be sure to select "Standard VGA".

  4. Go to the General SoftICE settings page. On the init line, add "altscr vga" at the start of the line.

  5. Reboot your machine.

Now when you start SoftICE, SoftICE should always be visible just as if you were using a mono monitor.

The critical point to the process is that the BIOS needs to be able to initialize just one VGA video card. If you can boot your machine so that you have the VGA output going to only one monitor, you should be able to accomplish mono-style SoftICE with two VGA cards.

 

Return to:

CONTENTS

 

SoftICE Remote Debugging

Note:  If you have installed any of the supplied network drivers for SoftICE, you will need to manually remove them before uninstalling DriverStudio.  

Please refer to Using SoftICE, Chapter 9, "Remote Debugging with SoftICE," for full information on installing, uninstalling, and using the SoftICE Remote Debugging feature.

 

Return to:

CONTENTS

 

Contacting Technical Support

For Non-Technical Issues

Customer Service is available to answer any questions you might have regarding upgrades, serial numbers and other order fulfillment needs. Customer Service is available from 8:30am to 5:30pm EST, Monday through Friday. Call:

For Technical Issues

Technical Support can assist you with all your technical problems, from installation to troubleshooting. Before contacting Technical Support, please read the relevant sections of the product documentation and the Readme files.

You can contact Technical Support by:

nashua.support@compuware.com

http://frontline.compuware.com/nashua/

1-603-578-8401

*Installation Issues:  Technical Support handles installation and setup issues free of charge.

When contacting Technical Support, please have the following information available:

 

Return to:

CONTENTS

 

Readme Archive

Note:  This archive contains README information from previous releases.

 

=======================================

NuMega SoftICE

Release 2.6

Note:  You can verify that you have Release 2.6 installed on your computer by issuing the ver command at the SoftICE command line prompt.

 

CONTENTS

 

What's New in This Release?

Note:  See the Readme Archive for the SoftICE commands and features introduced in Release 2.5.

 

========================================

 

NuMega SoftICE

DriverStudio Release 2.5

 

CONTENTS

 

What's New in This Release?

Note:  You can verify that you have Release 2.5 installed on your computer by issuing the ver command at the command line prompt.

SoftICE for DriverStudio Release 2.5 offers the following new features and new and/or updated commands.

New Features

USB Support

Symbol Loader (LOADER32)

Multiple Data Windows

Opening and Closing a Data Window

Single Active Data Window

Dynamic Data Windows

User-Definable Popup Menus

MENU=Description, Command Field, flags

Note:  The flags field is currently disabled and is provided for future expansion.

 

Headless Configuration on Win9x and WinMe

Specialized Network Card Drivers

Universal Network Driver (UND)

Note:  The SoftICE Universal Network Driver (UND) is only supported on Win2k systems.

Note:  Installing the Universal Network Driver by itself will prevent you from using your network card for standard network transactions, such as web browsing, network browsing, email, and so on. To get around this limitation, we suggest installing a second network card. One network card would be used for SoftICE tasks, while the other would be assigned to normal Windows Networking. If adding a second network card is impractical, we have provided a Virtual NIC driver (VNIC). This driver will allow you to share a single network card for both remote access and internet access. To install the VNIC, open the Control Panel and select Add/Remove Hardware. When the wizard opens, select Add/Troubleshoot, click Next, select Add a new device, then specify that you want to select the device from a list. When the list of hardware types appears, select Network adapter, click Have disk and browse to Program Files\NuMega\DriverStudio\SoftICE\Network\UND\VNIC. Select sivnic.inf from the list, and continue through the remaining prompts. If you run into problems with the VNIC, press Esc during the boot process when the UND driver prompts you. This will abort the loading of the UND, as well as the VNIC. To uninstall the VNIC, simply delete it from the device list, or use the Remove option in the Hardware Wizard.

Remote/Distributed Debugging

State 1 SoftICE is not connected to a host and is not 'popped-up.'

State 2 SoftICE  is connected to a host.

State 3 The remote system is about to 'blue screen.'    

You can see if SoftICE is popped up or not in all three states. By right-clicking on a machine name, you can change the SoftICE settings as well as the settings for all DriverStudio components for that target/remote machine. It is also possible to reboot that remote machine by right-clicking and choosing reboot.

Serial Debugging

Note:  On the host side, serial.exe and serial32.exe have been eliminated. You must now use the siremote comX baudrate command.

Right-clicking Feature

Advanced Tab Feature

New Edit Capabilities

Redesigned Settings Video Page

New Hotkeys

 

New/Updated Commands

Command List

The new and/or updated commands are:

Command Modifiers for the Breakpoint Commands

Enhanced PCI Command

USB Command

EVRES Command

EVRES [Process-Type |  Object-Type | Driver-Type]

These Object-Types refer to the types of objects collected by BCHKD. If one is specified only the objects of that type will be displayed (e.g., Evres interrupt). Only interrupt objects will be displayed.

A Driver-Type is a driver name. If one is specified only resources created by that driver will be displayed (e.g., Evres netbios). Only resources created by the netbios driver will be displayed. If no parameters are entered, all resources will be displayed.

For each captured resource, the following information will be displayed:

Handle This is the object-handle of the resource. For interrupt objects it is the address of the interrupt object structure.

Process This is the process name and process id that the resource was created in.

Obj Type This is one of the object types listed above.

Name This is the resource name. For interrupt objects, this is the interrupt vector number and the interrupt service routine address.

EIP1 This is the address in the driver that created the resource. If a symbolic name is available it will be displayed, otherwise the address and the driver name plus an offset will be displayed.

EIP2 This is the 2nd level of return address on the stack. If a symbolic name is available it will be displayed, otherwise the address and the driver name plus an offset will be displayed.

 

========================================

 

 

NuMega SoftICE

DriverStudio 2.0

Release Notes

-----------------------------------------------------------------

Table Of Contents

 What s New in SoftICE

SoftICE will now support Power Management on Windows 2000. This allows SoftICE to run on a Windows 2000 system that will go into Standby or Hibernate mode without interfering with hardware management.

Warning: If you installed DriverStudio 2.0 , and enabled the power management support, you MUST disable power management support before uninstalling DriverStudio 2.0.  If you do not, then your system will not boot correctly after DriverStudio is uninstalled.

To disable power management support, follow these steps:

1.    Run "Loader32" by selecting Start | Programs | NuMega DriverStudio | SoftICE | Symbol Loader on the "Start" menu

2.  Select Edit | SoftICE Initialization Settings

3.      UNCHECK the "Support Power Management" check box, and click "OK"

Now SoftICE will be able to popup remotely during power management cycle.

1 - Run Loader32.
2 - Open the "Edit | SoftICE Initialization Settings" dialog and chose the "Remote Debugging Tab"
3 - Select a Communication Port from the combo box

This results in the selected COM port's being reserved for SoftICE.  The COM port will not be accessible from any other windows application.

- addr: the address of a network packet.
- Length

1)     Install the Windows 9x debugger by running DBGINST.EXE from the Windows ME DDK

2)     Install DriverStudio.

The DriverStudio install will replace the installed debugger components with SoftICE.

To abort out of the loading of SoftICE on Millennium: This can be done, but it is a several-step process.

SoftICE can now run over a remote debugging session using an Intel EtherExpress" PRO/100B PCI adapter(TP) (part number: PILA8465B).

BoundsChecker can now collect event and memory usage data on Windows 98. Usage for the EVENT and EVMEM commands is the same on Windows 98 as on Windows NT.  

 

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: if you select the Universal Video Driver, then you must choose "standard vga" from the monitor list at the top of the display adapter setup screen.)

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:

  1. Run the SoftICE Display Adapter Setup
  2. From the manufacturers list, select STANDARD VGA
  3. Check the Universal Video Driver (UVD) box
  4. 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:

  1. 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.
  2. 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:

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:

  1. Download and install the most current version of your video card driver provided by the manufacturer
  2. Download and install the last version of the SoftICE legacy video drivers from our FTP site at:

    ftp://ftp.numega.com/anonymous/tech/

    Files:
    Windows 95: SIWVID95.ZIP
    Windows NT: SIWVIDNT.ZIP

  3. Run the SoftICE Display Adapter Setup and reselect your card.

Other options which are detailed in the users guide, include the ability to use SoftICE:

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

  1. Run Symbol Loader (LOADER32.EXE).
  2. Choose File-Open Module, and select the module you want to debug.
  3. Choose Module-Load (or click the Load button on the toolbar). SoftICE automatically extracts symbol information from your module, creates a .NMS file containing the information, loads the symbols and source code, and, if you are loading an EXE file, loads the EXE and sets a breakpoint. You're ready to start debugging.

Other features to check in the new symbol loader:

 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.

You can dynamically switch between monitors when SoftICE is popped up. To do this, you need to issue the "Set Monitor N" command (where "N" is one of the monitors listed when you issue the "Set Monitor" command with no additional parameters).

IMPORTANT: The first time you enable the secondary monitor, you need to reboot. If you don't, then when you pop up SoftICE, it will be active, but it won't display anything.

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:

 

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:

  1. You MUST use link V4.1 or later. Earlier versions do not emit debug information properly.
  2. 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.

 

Troubleshooting Tips

 

If the erratic behavior persists in Windows NT, select this Troubleshooting option as well:

 

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.

 

 

========================================

 

END OF ARCHIVE

Return to:

CONTENTS

 

Copyright 2002 Compuware Corporation