If you have the source code to your application then the most effective way to find out what is happening is to log the highest level exception to disk in the
main()
method.
try
{
}
catch(Exception ex)
{
File.WriteAllText("error.txt", ex.ToString());
}