zoukankan      html  css  js  c++  java
  • C++ 获取当前正在执行的函数的相关信息

    http://hi.baidu.com/hetaoos/blog/item/a1bfc3fc91a2c784b801a031.html

    今天对C++ 工程里面的类里面的方法进行重新命名,发现以前写的一些调试信息也不得不修改:
    如:

    int main(int argc,char **argv)
    {
          cout<<"Running In Function main"<<endl;
    }

    输出的结果是:Running In Function main
    以前,函数名是直接手动写到代码里面的,现在要改还数名,也要同时修改调试语句,这工程量蛮大的,就像找个一劳永逸 的方法。

    在网上找到写相关的信息,现在总结下:
    (我的运行环境:KUbuntu 8.04.1 x64 g++ 4.2.3)
    主要通过宏来实现:(注意,开头和结尾都是两个下划线)

    __PRETTY_FUNCTION __ 获取完整的函数头信息
    void IPCoreConnect::IPCoreConfirmWrite(unsigned char *p, int k)

    __func____FUNCTION__ 获取函数名
    IPCoreConfirmWrite

    __FILE__ 获取文件的 获取源文件的相对路径和名字
    /scr/main.cc

    __LINE__ 获取该行代码在文件中的行号

    现在原来的代码就可以改写成:
    int main(int argc,char **argv)
    {
          cout<<"Running In "<<__PRETTY_FUNCTION __<<endl;
    }

    输出的结果是:Running In Function int main(int argc,char **argv)

    很方便。


    其他的,可能还有很多,本人孤陋寡闻,忘达人赐教。

     C#获取当前运行的源代码的文件名和当前源代码的行数的方法

    http://blog.csdn.net/weizhiai12/article/details/7062854

    在C#中记录日志时,为了以后查找错误或者跟踪的方便,最好能记录下出错的源代码的文件名和出错的源代码的行数。

    这2个方法如下:

    /// <summary>
            /// 取得当前源码的哪一行
            /// </summary>
            /// <returns></returns>
            public static int GetLineNum()
            {
                System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(1, true);
                return st.GetFrame(0).GetFileLineNumber();
            }

            /// <summary>
            /// 取当前源码的源文件名
            /// </summary>
            /// <returns></returns>
            public static string GetCurSourceFileName()
            {
                System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(1, true);

                return st.GetFrame(0).GetFileName();

            }

  • 相关阅读:
    Nubiers to follow
    pp to write
    Reading source code
    build opencv with python support
    add monitor resolution
    Install cv2.so for Anaconda
    axios 上传下载显示进度
    vant 上传图片 图片回显 是base64
    多个时间段 合并
    热部署
  • 原文地址:https://www.cnblogs.com/chulia20002001/p/2476631.html
Copyright © 2011-2022 走看看