Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ToString() [3/3]

void System.Diagnostics.StackTrace.ToString ( TraceFormat traceFormat,
StringBuilder sb )
inlinepackage

Definition at line 209 of file StackTrace.cs.

210 {
211 string resourceString = SR.GetResourceString("Word_At", "at");
212 string resourceString2 = SR.GetResourceString("StackTrace_InFileLineNumber", "in {0}:line {1}");
213 string resourceString3 = SR.GetResourceString("StackTrace_InFileILOffset", "in {0}:token 0x{1:x}+0x{2:x}");
214 bool flag = true;
215 for (int i = 0; i < _numOfFrames; i++)
216 {
217 StackFrame frame = GetFrame(i);
218 MethodBase method = frame?.GetMethod();
219 if (!(method != null) || (!ShowInStackTrace(method) && i != _numOfFrames - 1))
220 {
221 continue;
222 }
223 if (flag)
224 {
225 flag = false;
226 }
227 else
228 {
229 sb.AppendLine();
230 }
231 sb.Append(" ").Append(resourceString).Append(' ');
232 bool flag2 = false;
233 Type declaringType = method.DeclaringType;
234 string name = method.Name;
235 bool flag3 = false;
237 {
238 flag2 = declaringType.IsAssignableTo(typeof(IAsyncStateMachine));
239 if (flag2 || declaringType.IsAssignableTo(typeof(IEnumerator)))
240 {
242 }
243 }
244 if (declaringType != null)
245 {
246 string fullName = declaringType.FullName;
247 foreach (char c in fullName)
248 {
249 sb.Append((c == '+') ? '.' : c);
250 }
251 sb.Append('.');
252 }
253 sb.Append(method.Name);
254 if (method is MethodInfo { IsGenericMethod: not false } methodInfo)
255 {
256 Type[] genericArguments = methodInfo.GetGenericArguments();
257 sb.Append('[');
258 int k = 0;
259 bool flag4 = true;
260 for (; k < genericArguments.Length; k++)
261 {
262 if (!flag4)
263 {
264 sb.Append(',');
265 }
266 else
267 {
268 flag4 = false;
269 }
271 }
272 sb.Append(']');
273 }
274 ParameterInfo[] array = null;
275 try
276 {
277 array = method.GetParameters();
278 }
279 catch
280 {
281 }
282 if (array != null)
283 {
284 sb.Append('(');
285 bool flag5 = true;
286 for (int l = 0; l < array.Length; l++)
287 {
288 if (!flag5)
289 {
290 sb.Append(", ");
291 }
292 else
293 {
294 flag5 = false;
295 }
296 string value = "<UnknownType>";
297 if (array[l].ParameterType != null)
298 {
299 value = array[l].ParameterType.Name;
300 }
301 sb.Append(value);
302 sb.Append(' ');
303 sb.Append(array[l].Name);
304 }
305 sb.Append(')');
306 }
307 if (flag3)
308 {
309 sb.Append('+');
310 sb.Append(name);
311 sb.Append('(').Append(')');
312 }
313 if (frame.GetILOffset() != -1)
314 {
315 string fileName = frame.GetFileName();
316 if (fileName != null)
317 {
318 sb.Append(' ');
319 sb.AppendFormat(CultureInfo.InvariantCulture, resourceString2, fileName, frame.GetFileLineNumber());
320 }
321 else if (LocalAppContextSwitches.ShowILOffsets && method.ReflectedType != null)
322 {
323 string scopeName = method.ReflectedType.Module.ScopeName;
324 try
325 {
326 int metadataToken = method.MetadataToken;
327 sb.Append(' ');
329 }
330 catch (InvalidOperationException)
331 {
332 }
333 }
334 }
335 if (frame.IsLastFrameFromForeignExceptionStackTrace && !flag2)
336 {
337 sb.AppendLine();
338 sb.Append(SR.GetResourceString("Exception_EndStackTraceFromPreviousThrow", "--- End of stack trace from previous location ---"));
339 }
340 }
341 if (traceFormat == TraceFormat.TrailingNewLine)
342 {
343 sb.AppendLine();
344 }
345 }
static bool TryResolveStateMachineMethod(ref MethodBase method, out Type declaringType)
static bool ShowInStackTrace(MethodBase mb)
virtual ? StackFrame GetFrame(int index)
static CultureInfo InvariantCulture
StringBuilder Append(char value, int repeatCount)
StringBuilder AppendFormat(string format, object? arg0)

References System.Diagnostics.StackTrace._numOfFrames, System.Text.StringBuilder.Append(), System.Text.StringBuilder.AppendFormat(), System.Text.StringBuilder.AppendLine(), System.array, System.Diagnostics.StackFrame.GetFileLineNumber(), System.Diagnostics.StackFrame.GetFileName(), System.Diagnostics.StackTrace.GetFrame(), System.Diagnostics.StackFrame.GetILOffset(), System.Diagnostics.StackFrame.GetMethod(), System.SR.GetResourceString(), System.Globalization.CultureInfo.InvariantCulture, System.Diagnostics.StackFrame.IsLastFrameFromForeignExceptionStackTrace, System.Name, System.LocalAppContextSwitches.ShowILOffsets, System.Diagnostics.StackTrace.ShowInStackTrace(), System.Diagnostics.StackTrace.TryResolveStateMachineMethod(), and System.value.