首页 > 技术文章 > 记录调试树(方便跟到具体的调用)

viaiu 2016-01-06 10:06 原文

   public static void DebugFunctionTree(string message)
        {
            try
            {
                System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();
                System.Diagnostics.StackFrame[] sfs = st.GetFrames();
                StringBuilder sb = new StringBuilder();
                for (int u = 1; u < sfs.Length; ++u)
                {
                    System.Reflection.MethodBase mb = sfs[u].GetMethod();
                    string pms = string.Empty;
                    foreach (var p in mb.GetParameters())
                    {
 
                        pms += p.ParameterType.FullName + ":" + p.Name + ",";
                    }
                    sb.AppendLine(string.Format("[方法调用树][{0}]: {1}.{2} 参数:{3}", u, mb.DeclaringType.FullName, mb.Name, pms));
                }
                XX.General.Exception.Debug(message+"-开始");
                XX.General.Exception.Debug(sb.ToString());
                XX.General.Exception.Debug(message + "-结束");
            }
            catch (Exception)
            {
                
            }       

        }

推荐阅读