Kayaker
October 31st, 2003, 03:13
This is a bit of a long shot, but...
I've been running Win2K sp3 for a while and figured it was finally time to run Microsoft's RegClean 4.1a on my system. Knowing M$ is so well renowned for its wonderful, stable, bug-free software (tongue firmly implanted in cheek), I wasn't expecting any problems. You can imagine my surprise then when it continually crashed part way through its analysis.
No problem, Dr. Watson to the rescue (now that *is* a handy util). It reliably told me that RegClean had crashed (duh) and gave a nice stack dump and faulting address.
0043c578 8b7c240c mov edi,[esp+0xc]
0043c57c 8bf1 mov esi,ecx
0043c57e 8b07 mov eax,[edi] <--FAULT
This code is called continually, edi being various address pointers to string values from the registry. Using an IF statement in Softice I was able to break just before the crash and found that [esp+0xc], instead of containing an address pointer held the value "4". Of course this caused a C0000005 access violation.
With the error being tied so closely to ESP, and the fact it occurs after many, many iterations of the above code, though always at the same point with the same stack dump values, I sense it's a stack buffer overflow thingy kind of problem. Something you can see in your own code if you don't balance the stack, it will run OK for a while then inevitably crap out on you.
I'm not really expecting a solution, it's probably just my dumb luck it's happening, this is more of a misery-loves-company kind of post. The only wild thought I could come up with was that having the Win2K Debug symbols installed somehow affected the Regclean operation, but I suppose it could be anything. Regclean comes with an OLE library update for early OS systems, but I'm averse to running these 1996/97 dll files.
Has anyone experienced any problems running RegClean on Win2K? (No, of course not you sap
Kayaker
I've been running Win2K sp3 for a while and figured it was finally time to run Microsoft's RegClean 4.1a on my system. Knowing M$ is so well renowned for its wonderful, stable, bug-free software (tongue firmly implanted in cheek), I wasn't expecting any problems. You can imagine my surprise then when it continually crashed part way through its analysis.
No problem, Dr. Watson to the rescue (now that *is* a handy util). It reliably told me that RegClean had crashed (duh) and gave a nice stack dump and faulting address.
0043c578 8b7c240c mov edi,[esp+0xc]
0043c57c 8bf1 mov esi,ecx
0043c57e 8b07 mov eax,[edi] <--FAULT
This code is called continually, edi being various address pointers to string values from the registry. Using an IF statement in Softice I was able to break just before the crash and found that [esp+0xc], instead of containing an address pointer held the value "4". Of course this caused a C0000005 access violation.
With the error being tied so closely to ESP, and the fact it occurs after many, many iterations of the above code, though always at the same point with the same stack dump values, I sense it's a stack buffer overflow thingy kind of problem. Something you can see in your own code if you don't balance the stack, it will run OK for a while then inevitably crap out on you.
I'm not really expecting a solution, it's probably just my dumb luck it's happening, this is more of a misery-loves-company kind of post. The only wild thought I could come up with was that having the Win2K Debug symbols installed somehow affected the Regclean operation, but I suppose it could be anything. Regclean comes with an OLE library update for early OS systems, but I'm averse to running these 1996/97 dll files.
Has anyone experienced any problems running RegClean on Win2K? (No, of course not you sap

Kayaker