In general, by destroying the stack the way you are doing, you will destroy the 'callstack', meaning that information about the previously called routines will be be gone. However, if you trigger an access violation / segmentation fault from within this routine, the instruction pointer where this happened will be stored, pointing to this routine.
However, If the stack is corrupted and you return from this routine, it will be very hard, if not impossible, to figure out what happened.
If you are trying to figure out what happened, I suggest using a debugging tool to find out where the stack gets 'smashed'. If your intention is to destroy evidence of execution, make sure you 'jump' or 'return' from this routine, without triggering an exception.