Review: Compuware DriverStudio
It's refreshing in this day and age to open a software box and find that
it's actually filled with paper manuals. But then, that's
understandable: device driver development is one of the more complex and
specialized parts of writing Windows software, and DriverStudio offers a
wide breadth of tools to help in this endeavor.
Start with the basics: DriverStudio integrates Visual Studio with the
DDK so you can actually use a modern IDE to develop device drivers,
instead of just writing code in Notepad (or, to be fair, the
programmer's editor of your choice). Then you also get class libraries
and wizards to generate the shell of your driver quickly, avoiding a lot
of manual grunt work. The manuals also include extensive documentation
of both the class library and the Windows Driver Module, making it
easier to find your way around this area of coding.
Then there's DriverWorkbench, a set of testing and debugging tools for
device drivers. BoundsChecker catches a host of API errors. TrueTime is
a performance analysis tool, and TrueCoverage is a code coverage
analysis tool to let yo make sure you've tested everything. There are
also various other tools to load, unload, and install drivers, take a
system snapshot, display debug output, and so on.
Finally, you get not one, but two high-end debuggers as part of this
package: SoftICE and Visual SoftICE. SoftICE is a traditional
single-machine debugger that seizes control of the entire machine when
you activate it (via a hotkey, breakpoint, exception, or crash). Visual
SoftICE, in contrast, is a dual-machine debugger. A small core of code
runs on the machine with the driver you're debugging, and the Visual
SoftICE user interface runs on a second computer, connected by serial
port, IP, or IEEE 1394. Each of these debuggers has its own strength
(SoftICE, for example, doesn't insert any code that might confound a
network driver, while Visual SoftICE lets you see what's happening
inside a failing display driver). Between the two of them, you can debug
on any system from MS-DOS to Windows XP 64-bit edition.
If you have enough hardware, you'll want to install DriverStudio in a
distributed setting, with the core monitoring components and drivers on
a target machine and the IDE on a host machine. If you're strapped for
hardware, you can put everything on one computer. If you're really rich,
a single host can connect to multiple targets.
Obviously, DriverStudio is not for everyone. But if you're trying to do
device driver development, you need to invest in a solid debugger, at
the very least. You'll find that here, along with plenty of other
components to make your life easier.
For more reviews and opinions from Mike Gunderloy, click here.
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.