bool AddFrames (StringBuilder sb, string newline, string unknown, StackTrace st)
{
int i;
for (i = 0; i < st.FrameCount; i++) {
StackFrame frame = st.GetFrame (i);
if (i == 0)
sb.AppendFormat (" {0} ", Locale.GetText ("at"));
else
sb.Append (newline);
if (frame.GetMethod () == null) {
string internal_name = frame.GetInternalMethodName ();
if (internal_name != null)
sb.Append (internal_name);
else
sb.AppendFormat ("<0x{0:x5} + 0x{1:x5}> {2}", frame.GetMethodAddress (), frame.GetNativeOffset (), unknown);
} else {
GetFullNameForStackTrace (sb, frame.GetMethod ());
if (frame.GetILOffset () == -1)
sb.AppendFormat ("<0x{0:x5} + 0x{1:x5}> ", frame.GetMethodAddress (), frame.GetNativeOffset ());
else
sb.AppendFormat (" [0x{0:x5}] ", frame.GetILOffset ());
sb.AppendFormat ("in {0}:{1} ", frame.GetSecureFileName (),
frame.GetFileLineNumber ());
}
}
return i != 0;
}