zoukankan      html  css  js  c++  java
  • StackTrace

     我们在学习函数调用时,都知道每个函数都拥有自己的栈空间。一个函数被调用时,就创建一个新的栈空间。那么通过函数的嵌套调用最后就形成了一个函数调用堆栈。在c#中,使用StackTrace记录这个堆栈。你可以在程序运行过程中使用StackTrace得到当前堆栈的信息。

    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                Program a 
    = new Program();
                a.FuncA();
                Console.ReadLine();
            }

            
    int FuncA()
            
    {
                FuncB();
                
    return 0;
            }


            
    private void FuncB()
            
    {
                MethodInfo method0 
    = (MethodInfo)(new StackTrace().GetFrame(0).GetMethod());
                MethodInfo method1 
    = (MethodInfo)(new StackTrace().GetFrame(1).GetMethod());
                MethodInfo method2 
    = (MethodInfo)(new StackTrace().GetFrame(2).GetMethod());
                
                Console.WriteLine(
    "Current Method is : {0}",method0.Name);
                Console.WriteLine(
    "Parent Method is : {0}", method1.Name);
                Console.WriteLine(
    "GrandParent Method is : {0}", method2.Name);
            }

        }
  • 相关阅读:
    LVS 模式
    修改RocketMQ的NameServer端口
    一次清理Hbase的oldWALs的过程
    Linux下删除文件系统空间不释放的问题
    HBase 强制删除表
    关闭Found duplicated code
    Java操作HDFS代码样例
    RocketMQ:Cannot allocate memory
    Storm的StreamID使用样例(版本1.0.2)
    android studio 编译sdk版降低报错解决方法
  • 原文地址:https://www.cnblogs.com/yongtaiyu/p/2904043.html
Copyright © 2011-2022 走看看