EDN Admin
Well-known member
I have an application that was built using Visual Studio 2010 on Windows XP. It is a multi-threaded application in which one thread acts as a "watchdog" and prints error messages if the other thread enters an infinite loop or throws an exception.
For a simple test, my main thread has a hard-coded "throw 3;" statement in it.
When I run the application on an XP system, the watchdog properly prints that the main thread has "Apparently hung or died" (the correct error message). However, when running the same executable on a Windows 7 machine, the watchdog does
not print this message. In both cases, a crash dialog appears (as expected).
Can anyone shed some light on what could be preventing the watchdog thread from working on Win7? I start it with a call to _beginthread(). Does Win7 somehow stop all threads in a process that throws an exception to the top level whereas XP does
not? If so, is there a way to prevent such behavior so that my watchdog will continue to run?
Thanks for any thoughts or recommendations of alternate sources for information!
View the full article
For a simple test, my main thread has a hard-coded "throw 3;" statement in it.
When I run the application on an XP system, the watchdog properly prints that the main thread has "Apparently hung or died" (the correct error message). However, when running the same executable on a Windows 7 machine, the watchdog does
not print this message. In both cases, a crash dialog appears (as expected).
Can anyone shed some light on what could be preventing the watchdog thread from working on Win7? I start it with a call to _beginthread(). Does Win7 somehow stop all threads in a process that throws an exception to the top level whereas XP does
not? If so, is there a way to prevent such behavior so that my watchdog will continue to run?
Thanks for any thoughts or recommendations of alternate sources for information!
View the full article