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.