Having problems with your account or logging in?
A lot of changes are happening in the community right now. Some may affect you. READ MORE HERE

Bug of the Month -- July 2011

Matt Schuetze1 Absent Member.
Absent Member.
0 5 1,144

July promised to be an interesting month, along with a moment of zen. The bug story transcends two continents, five companies, six years of percolation, and a line in the sand found to be drawn through XP SP1. The story is that of SoftICE and DriverStudio. These two legacy tools of DevPartner heritage came across to Micro Focus from Compuware, who got them when acquiring NuMega. Those are the first three companies in this drama. A license holder of Driver Studio contacted us and said they’ve been using DriverStudio successfully on a contract project, and they wanted their customer to get their own license, such that for their turnkey effort the client firm got a complete toolchain and could do their own maintenance there forward. Add these two companies and that makes five. The client firm is in northern Europe, whereas the rest of us are in the US: there we have two continents. The six years of percolation demarks the span since Compuware prepared the final GA builds of both SoftICE and DriverStudio and today when we have someone trying to revive these long dormant tools. Starting in May and ending in July we finished the archeology into the legacy licensing system, the legacy serial number generator, and secured the final bits and build documentation. The last piece of the puzzle was answering the question “will this still work?” The answer was a resounding “Yes, but…” meaning it took a special bit of voodoo to revive these long dead products. Where is the bug? The bug was a matter of determining the end of the actual support matrix, not the documented one. There we come to the line in the sand through XP SP1. We knew that the tools—particularly SoftICE—could not handle USB keyboards or mice, so we fell back to PS2 peripherals. The product would start, but you could not see it. The bug turns out to be a limitation in the SoftICE universal video driver: it could not handle the color depths of modern video adapters, rather it would only work in 16-bit color. There was certainly a Eureka! moment in the lab when that last limitation finally got resolved and was understood. Could we have guessed that would pose a problem in retrospect? Hardly!

What is the lesson here? Is it: “don’t give up, lightning may strike and you will find the answer!“? I think it is deeper than that. As software engineers, we’re all trying our hardest to do right by the customer. But what happens when your customer asks for something “impossible”? On the surface, this is one of those times: a legacy product, not built in half a decade, against a platform all but abandoned by its vendor, on a system with peripherals you might be lucky to find on EBay, with security padlocks intentionally in place to prevent people from running it. I find it fascinating that engineers can still manage to break through these barriers when engaged with sufficient tenacity, courage, and creativity. I also find it encouraging to see that once you’ve built an application that truly aids others accomplish difficult tasks—ala performing self-resident kernel debugging the way SoftICE does—it will likely outlive its intended commercial life by years, decades, or longer. I hope we all find ourselves working on such products at some time in our careers.

Micro Focus Frequent Contributor
Micro Focus Frequent Contributor

SoftICE is legendary in the Windows hacker community (regardless of hat color). I didn't realize it was part of the MF IP after the Compuware acquisition. It's a shame it's not supported on newer systems; it'd be fun to fire it up and play around. But congratulations to the folks who got it working for this customer.

Vamshi1 Absent Member.
Absent Member.

Wow...I agree with Michael. Let's fire it up and have some fun.

I envy you guys, the best part is, debugging a debugger, and you guys get to do it. Cheers!

ChrisPlak Absent Member.
Absent Member.

I have to jump in here for a moment and present myself as an "Expert" on the SoftICE topic.  My name is Chris Plakyda and I am the last programmer and last manager of the SoftICE product while under Compuware and prior to it being shut down.  I'd like to correct a few items in this posting.  #1 SoftICE does fully support USB keyboards and mice.  #2 SoftICE does fully support any bit depth presented to the UVD.  #3 SoftICE did not support any OS versions past Windows XP SP3 when I left the company.

For the current owners of SoftICE I suggest that you look through the notes I provided on osidata.sys and how to generate the required files from the microsoft supplied PDB's of ntoskrnl (and others).  This will at the least get you up and running on newer XP versions and will definitely get you an on screen display.  If for some reason you can't get the UVD display then just use a 2nd VGA video card.  There is also a nice doc with the source that details debugging video and UVD issues.  

And if you have any doubt, just run "ver jim" from within SoftICE.   Ahhhhh - a nice easter egg.  We had always planned on adding a hidden tetris.  We just ran out of time.

Feel free to contact me offline for any additional help.  I'd love to see the product resurrected.

Chris Plakyda AKA Mr SoftICE

Rick Papo Absent Member.
Absent Member.

I'm afraid somebody misunderstood me whey I said that USB keyboard support didn't work.  In and of itself, the keyboard support is there.  But there is something special that works on a PS/2 keyboard, but not on a USB keyboard.  When you hit Ctrl+D on a PS/2 keyboard, SoftICE wakes up and shows you exactly where it was when you hit the key.  With a USB keyboard, you wake up inside the USB keyboard driver, with no real clue as to where the system was just before the key was struck.

I don't know who said the mouse didn't work...

As for the video driver, I can demonstrate that problem easily.  It works on some machines in 32-bit mode, but not on all machines.  Don't know why.

Rick Papo Absent Member.
Absent Member.

Additional comment: The build of SoftICE (actually DriverStudio 3.2) that we sent to the customer absolutely does not support anything beyond Windows XP (32-bit), and frankly we aren't sure it works on XP SP2 or SP3.  We have built a test machine that has Windows XP SP1, a PS/2 keyboard and a PS/2 mouse.  We know that the version of SoftICE that shipped with DriverStudio 3.2 works on that machine at a 16 bit color depth (but not at a 32-bit color depth).  On that particular machine, on that particular configuration, SoftICE works as I remember it from 2005.

We have an expert on the universal video driver looking into the color depth problem in his spare time.

The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.