Mike Hearn wrote:
On Tue, 2003-12-09 at 13:51, Shachar Shemesh wrote:
When trying to run Microsoft Digital Image Pro, I occasionally get problems when loading it. The splash screen comes up, and then it hangs. This problem only happens occasionally. I have not, to date, managed to reproduce it with relay turned on.
You might want to do a run with +tid,+seh,+debugstr
I'm not sure I'll manage to do that. The problem happens so rarely, and I'm working on other problems in the program, that I'm not sure the added output is something I can do that over time. Not to mention that when I exit the program with these settings, I get a long loop of: 0009:trace:seh:EXC_CallHandler calling handler at 0x66e5d029 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 1 0009:trace:seh:EXC_CallHandler calling handler at 0x66e5c8c2 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 1 0009:trace:seh:EXC_CallHandler calling handler at 0x102e826 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 1 0009:trace:seh:EXC_CallHandler calling handler at 0x401cfca8 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 2 0009:trace:seh:EXC_CallHandler calling handler at 0x7c34240d code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 1 0009:trace:seh:EXC_CallHandler calling handler at 0x66e5d029 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 1
it's followed by 0009:trace:seh:EXC_CallHandler calling handler at 0x401cfca8 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 2 0009:trace:seh:EXC_CallHandler calling handler at 0x401d0981 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 1 0009:trace:seh:EXC_CallHandler calling handler at 0x401cfca8 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 2 0009:trace:seh:EXC_CallHandler calling handler at 0x6759352c code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 1 0009:trace:seh:EXC_CallHandler calling handler at 0x102bfd8 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 1 0009:trace:seh:EXC_CallHandler calling handler at 0x102ffb3 code=c0000005 flags=10 0009:trace:seh:EXC_CallHandler handler returned 1 0009:trace:seh:EXC_CallHandler calling handler at 0x102bfd8 code=c0000005 flags=10 0009:warn:seh:setup_exception exception outside of stack limits in thread 0009 eip 401db925 esp 4071123c stack 0x40710000-0x40810000 0009:trace:seh:EXC_RtlRaiseException code=c0000005 flags=0 addr=0x401db925 0009:trace:seh:EXC_RtlRaiseException info[0]=00000000 0009:trace:seh:EXC_RtlRaiseException info[1]=00000000 0009:trace:seh:EXC_CallHandler calling handler at 0x401d0981 code=c0000005 flags=0 0009:trace:seh:EXC_RtlUnwind code=c0000005 flags=2 0009:trace:seh:EXC_CallHandler calling handler at 0x401cfca8 code=c0000005 flags=2 0009:trace:seh:EXC_CallHandler handler returned 1 0009:err:seh:setup_exception stack overflow 2692 bytes in thread 0009 eip 7c34b55e esp 4071057c stack 0x40710000-0x40810000
I'm not sure what seh does, but it's triggering other problems as well.
and then when it deadlocks (hopefully it will, sounds like a race)
I don't know of other causes for problems that only happen OCCASIONALLY. Yes, it's a race.
attach with winedbg then get backtraces of the threads that stopped.
How can I attach to two threads?
BTW it looks like something died inside a PROCESS_ATTACH or THREAD_ATTACH as evidenced by the presence of the loader section there. Perhaps it tried to access GetScrollBarInfo?
Wouldn't that cause it to bomb each and every time? Like I said before - usually it works fine.
I've noticed that sometimes operations that should cause a crash are silently swallowed and simply cause a deadlock somewhere.
This program sets up tons of error handlers. Usually, however, they just bring up a dialog that says "this program has crashed. Do you want us to rerun it for you?". Another fine Microsoft invention.
However, even when that happens, I can usually see the error on the debug output. I have had lots of those when trying out the unicows solution (which Alexandre replaced with something both simpler and more elegant - frustrating).
Shachar