views:

140

answers:

1

I noticed that there are at least two kinds of crashes in Windows Mobile

  1. Silent Crash
    The application crash but there is no "send report" dialog prompted by the OS
  2. Crash with "send report"
    The application crash and there is a "send report" dialog prompted by the OS

As an addition, each of the crashes above sometimes cause the application to terminate unexpectedly and sometime do not (as far as I can recall).

When does each of them happen and perhaps what are some common scenarios/reasons they happen?

Edit:
When I am developing WM applications, sometimes my applications crash. So far I don't use any exceptions (not throwing nor catching).

+1  A: 

the "Crash with send report" is the easiest to answer. When an application exits because of an unhandled exception, you get the "We're sorry" dialog that offers to send a .kdmp file to Microsoft. This .kdmp file (also called a mini-dump) contains information about the state of the program at the time the unhandled exception was thrown.

A silent crash is probably an application that enters an error state it doesn't know how to handle and decides to exit. For example, the developer may have decided to catch a particular exception but didn't know how to recover from it, so he just tells the program to exit. I don't think there is going to be any 1 explanation for this type of error.

-PaulH

PaulH
Hi PaulH, thank you for your response. So far my code didn't throw nor catch any exceptions but I face these two exceptions and want to debug them.
afriza
Just because *you're* not specifically throwing exceptions doesn't mean they aren't being thrown by the OS. Dereferencing a NULL pointer, for instance will cause an exception. Writing past the end of a buffer could cause an exception. If this is your code we're talking about, then I suggest you run it in a debugger. Before the application exits, the debugger will tell you where the error was and what caused it.
PaulH
yes, I realized a bit after I typed my comment that the OS/API I use may throw exceptions. Sadly, because of circumstances, some projects I am working now cannot be debugged using a debugger.By the way, in my first comment, I meant to type "I face these two crashes" instead of "I face these two exceptions"
afriza