public static string FullDump(Exception exception, bool stacktrace)
{
string ret = "";
string tab = "";
Exception current = exception;
while (current != null && ret.Length < 10000000)
{
ret += tab + current.Message + "\r\n";
if (stacktrace)
{
if (current.StackTrace != null)
{
string[] lines = current.StackTrace.Split('\n');
foreach (string l in lines)
{
ret += tab + l + "\r\n";
}
ret += "\r\n";
}
}
tab += " ";
current = current.InnerException;
}
return ret;
}