gecko/build/win32/crashinjectdll/crashinjectdll.cpp
Ted Mielczarek 943273d508 bug 501034 - add a Win32 helper app to crash a process, and make automation.py use it when the app hangs. r=Waldo
--HG--
extra : rebase_source : 845326f8cfcd3dfe7ca5b0a98bd0810966cf2809
2009-10-16 13:34:27 -04:00

35 lines
984 B
C++

#include <stdio.h>
#include <Windows.h>
// make sure we only ever spawn one thread
DWORD tid = -1;
DWORD WINAPI CrashingThread(
LPVOID lpParameter
)
{
// not a very friendly DLL
volatile int* x = (int *)0x0;
*x = 1;
return 0;
}
BOOL WINAPI DllMain(
HANDLE hinstDLL,
DWORD dwReason,
LPVOID lpvReserved
)
{
if (tid == -1)
// we have to crash on another thread because LoadLibrary() will
// catch memory access errors and return failure to the calling process
CreateThread(
NULL, // default security attributes
0, // use default stack size
CrashingThread , // thread function name
NULL, // argument to thread function
0, // use default creation flags
&tid); // returns the thread identifier
return TRUE;
}