zoukankan      html  css  js  c++  java
  • systemtap跟踪C

    1.[root@localhost ~]# rpm -qi  glibc
    Name        : glibc                        Relocations: (not relocatable)
    Version     : 2.5                               Vendor: CentOS
    Release     : 123.el5_11.1                  Build Date: Tue 27 Jan 2015 09:35:22 AM PST
    Install Date: Tue 30 Jun 2015 01:41:40 AM PDT      Build Host: builder17.centos.org
    Group       : System Environment/Libraries   Source RPM: glibc-2.5-123.el5_11.1.src.rpm
    Size        : 11690192                         License: LGPL
    Signature   : DSA/SHA1, Tue 27 Jan 2015 02:58:46 PM PST, Key ID a8a447dce8562897
    Summary     : The GNU libc libraries.

    2.安装glibc调试符号表

         1.wget -c ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/x86_64/Debuginfo/glibc-debuginfo-2.5.123.el5_11.1.x86_64.rpm

          (手动下载              ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/x86_64/Debuginfo/glibc-debuginfo-2.5.123.el5_11.1.x86_64.rpm)

        2. rpm -i  glibc-debuginfo-2.5.123.el5_11.1.x86_64.rpm

    3.测试是否安装成功

    1.[root@localhost ~]# stap -L  'process("/lib64/libc.so.6").function("malloc")'
       process("/lib64/libc-2.5.so").function("__libc_malloc@/usr/src/debug/glibc-2.5-20061008T1257/malloc/malloc.c:3560") $bytes:size_t
      You have new mail in /var/spool/mail/root

    2.  测试的C文件

    vi  t.c

    #include <stdlib.h>

    void fun() { malloc(1000);}

    int main(int argc, char *argv[])

    {   fun();  return 0;}

    gcc -g t.c -o t

    3.查看t 程序调用了那些函数(不包括malloc)

    [root@localhost ~]# stap -L 'process("./t").function("*")'
    process("/root/t").function("fun@/root/t.c:3")
    process("/root/t").function("main@/root/t.c:7") $argc:int $argv:char**

    4.

  • 相关阅读:
    Scala集合
    Spark常用算子
    Flink运行架构
    Flink 有状态的算子和应用程序
    Flink 状态一致性
    Flink 检查点(checkpoint)
    Flink 时间语义与watermark
    Flume的可靠性保证:故障转移、负载均衡
    Hive 文件存储格式
    BPM与OA区别
  • 原文地址:https://www.cnblogs.com/zengkefu/p/4798531.html
Copyright © 2011-2022 走看看