Rich 0437f76f3a Stack Trace Class.
Fixing logic between ItemSelected and DisplayRTB
2008-02-28 16:44:37 +00:00

42 lines
1.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
namespace Volian.Controls.Library
{
public static class vlnStackTrace
{
public static string GetStack(string str, params object[] objects)
{
return string.Format(str, objects) + StackToString();
}
public static void ShowStack(string str, params object[] objects)
{
Console.WriteLine(string.Format(str, objects) + StackToString());
}
public static string GetStack()
{
return StackToString();
}
public static void ShowStack()
{
Console.WriteLine(StackToString());
}
private static string StackToString()
{
StringBuilder sb = new StringBuilder();
StackTrace st = new StackTrace(true);
StackFrame[] sfs = st.GetFrames();
int ii = 0;
foreach (StackFrame sf in sfs)
{
if (ii < 2) ii++;
else if (sf.GetFileLineNumber() != 0)
sb.Append(string.Format("\r\n{0}{1}", "".PadLeft(ii++ * 2), sf.ToString().TrimEnd(" \r\n".ToCharArray())));
}
return sb.ToString();
}
}
}