CallStackLines で、現在のコールスタックが文字列に変換されます。引数の count には、出力するスタックの個数を指定します。ただし、0 を指定すると、全てのコールスタックが出力されます。
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Text; namespace SSS { public class DebugUtil { public static void AppendCallStack( StringBuilder sb, int start, int count, string sep ) { StackTrace st = new StackTrace(); if (count == 0) { count = st.FrameCount; } else { count += start; if (count > st.FrameCount) count = st.FrameCount; } for (int i = start; i < count; ++ i) { if (i > start) sb.Append(sep); sb.Append(st.GetFrame(i).GetMethod().ReflectedType.FullName); sb.Append("::"); sb.Append(st.GetFrame(i).GetMethod().Name); } } public static string CallStackLines(int count) { StringBuilder sb = new StringBuilder(); AppendCallStack(sb, 2, count, "\n"); return sb.ToString(); } } }
AppendCallStack の start に 2 を指定しているのは、出力に AppendCallStack と CallStackLines を除くためです。
このサイトのページへのリンクは自由に行っていただいてかまいません。
このサイトで公開している全ての画像、プログラム、文書の無断転載を禁止します。
ここをクリック
すると表示されるページから作者へメールで連絡できます。