美文网首页
stap探测程序的传入参数和返回值

stap探测程序的传入参数和返回值

作者: pandazhong | 来源:发表于2018-10-17 15:33 被阅读0次

    在函数返回处下的探针可以获取到程序的返回值。

    C++代码如下:

    #include<stdio.h>

    #include<string>

    using namespace std;

    int testB()

    {

            return 10;

    }

    char *testA(int a)

    {

            int b = a + 10;

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

            string result = "hello,world";

            return (char *)result.c_str();

    }

    int main()

    {

            char *p = testA(2);

            printf("%s    %d\n",p, testB());

            return 0;

    }

    编写stp文件如下:

    probe process("./test").function("testA").return {

            printf("arg:%s    ret:%s\n",$$parms, $$return$)

    }

    probe process("./test").function("testB").return {

            printf("arg:%s    ret:%s\n",$$parms, $$return$)

    }

    其中,$$parms获取传入的参数,$$return获取返回值

    执行探针:

    stap -c ./test test.stp

    执行结果如下:

    相关文章

      网友评论

          本文标题:stap探测程序的传入参数和返回值

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