美文网首页
stap探测变量的值

stap探测变量的值

作者: pandazhong | 来源:发表于2018-10-16 19:38 被阅读0次

        首先我们写一个简单的程序:

    #include<stdio.h>

    int main()

    {

            int a = 10;

            char *b = "hello,world";

            printf("a=%d  b=%s\n", a, b);

            return 0;

    }

    编译的时候加上-g参数:g++ -g -o panda panda.cpp

    查看程序中都有哪些函数: stap -l 'process("./panda").function("*")'

    输出如下:

        接下来我们探测程序中a和b的值:

    probe process("./panda").statement("main@/intellif_home/zhongpp/panda.cpp:7") {

            printf("%s  a=%d,b=%s\n",execname(),$a,$b$)

    }

    在这里,我们在panda.cpp的第七行下了个探针,用来打印a和b的值,注意,当打印值本身的时候,变量前面加上$(比如$a是访问变量a),如果打印指针中的内容,则变量前后都加上$(比如$b$是打印b指针指向的内容)。

    输出如下:

        备注:stap -c ./panda panda.stp命令中的-c表明要执行的程序。

        prefect!!!

    相关文章

      网友评论

          本文标题:stap探测变量的值

          本文链接:https://www.haomeiwen.com/subject/rgdhzftx.html