Please check off the following before submitting a software-related request to us.
Check that you've allocated enough stack
It is amazing how long a program will work with insufficient stack, then one day you change a line of code and it stops working. If you've not allocated enough stack you will see random exceptions, functions not returning correctly, program corruption, etc.
Check that you've allocated enough heap
This is another very common cause of problems. Allocating insufficient heap will cause NULL pointers to be returned from malloc and new functions, if the pointers aren't checked this will cause program corruption, NULL pointer dereferences, exceptions, etc.