Feb 05, 2009 20:12
One of the surprising challenges of shipping software to customers is that you really, really want to know when it crashes.
The problem with crashes, of course, is that they take out the application. In order to test these cases, you get to write a giant source file that is full of creative, suicidal functions:
IMVU_DEFINE_CRASH(ExecuteNullWithNoEsp) {
__asm {
xor esp, esp
jmp esp
}
}
IMVU_DEFINE_CRASH(ExecuteNullWithStackInHeap) {
int* p = new int;
__asm {
mov esp, p
xor eax, eax
jmp eax
}
}
code