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.
systemtap跟踪C的更多相关文章
- 用systemtap跟踪打印动态链接库的所有c++函数调用过程
http://gmd20.blog.163.com/blog/static/168439232015475525227/ 用systemtap跟踪打印动态链接库的所有c++函数 ...
- mdl 锁 SYSTEMTAP跟踪
systemtap : 各种资源的使用限制由所生成的C代码中的宏来设置.这些值可在编译时由-D选项来重写.下面描述了部分挑选出来的宏: MAXNESTING 递归函数的最大调用层数,默认值是10. M ...
- sync fsync fdatasync ---systemtap跟踪
aa.stp: probe kernel .function ( "sys_sync" ) { printf ( "probfunc:%s fun:%s\n", ...
- redhat server 5.3内核升极2.6.18 升级到 3.5 装systemtap 原创
1. 在 LINUX 3.5源代码目录下执行 yum install ncurses-devel make menuconfig 2 打开内核跟踪事件,用于SYSTEMTAP跟踪 kern ...
- RHEL7系统管理常用工具
RHEL7提供大量系统管理工具,简要记录一下各工具的作用,后续再详细说明用法. 工具 描述 /proc linux的内存镜像目录./proc/sys目录下的文件能被临时修改,从而改变linux内核参数 ...
- Linux 性能工具集
系统级别: 下面这些工具利用内核的计数器在系统软硬件的环境中检查系统级别的活动. vmstat: 虚拟内存和物理内存的统计,系统级别. mpstat: 每个CPU 的 使用情况. iostat: 每个 ...
- 内核探测工具systemtap简介
systemtap是内核开发者必须要掌握的一个工具,本文我将简单介绍一下此工具,后续将会有系列文章介绍systemtap的用法. 什么是systemtap 假如现在有这么一个需求:需要获取正在运行的 ...
- SystemTap知识(一)
SystemTap是一个系统的跟踪探测工具.它能让用户来跟踪和研究计算机系统在底层的实现. 安装SystemTap需要为你的系统内核安装-devel,-debuginfo,-debuginfo-com ...
- SystemTap了解
SystemTrap是监控和跟踪运行中的Linux内核操作的动态方法. http://www.ibm.com/developerworks/cn/linux/l-systemtap/ 使用System ...
随机推荐
- 多源复制遇到CREATE USER FAILED错误
MySQL Multi-Source Replication enables a replication slave to receive transactions from multiple sou ...
- Python 入门基础6 --字符编码、文件操作1
今日内容: 1.字符编码 2.字符与字节 3.文件操作 一.字符编码 了解: cpu:将数据渲染给用户 内存:临时存放数据,断电消失 硬盘:永久存放数据,断电后不消失 1.1 什么是编码? 人类能够识 ...
- 启动tomcat的时候爆出如下错误
The JRE_HOME environment variable is not defined correctly This environment 解决办法: https://blog.csdn. ...
- tortoise svn 忽略bin、obj等文件夹
项目空白处右击 =>TortoiseSVN => Properties => New => Other => svn:global-ignores value => ...
- 移动网络简介与RRC
1.移动网络简介 1G:表示第一代移动通讯技术,以模拟技术为基础的蜂窝无线电话系统,如现在已经淘汰的模拟移动网.1G无线系统在设计上只能传输语音流量,并受到网络容量的限制. 2G:第二代手机通信技术规 ...
- Vue 虚拟Dom 及 部分生命周期初探
踏入前端,步入玄学 17年底至18年初附带做了vue的一些框架搭建,中途断断续续用了部分vue,时隔几个月后的工作又拾起vue,对于一些原理性的知识淡忘了,正值这段时间使用中遇到了一些坑,又拨了部分代 ...
- 准备尝试openFrameworks
用PCL(Point Cloud Library)已经两年多,当时选择PCL的原因是适合使用的也仅仅知道CGAL和PCL,而CGAL太大,又无从下手,所以选择了PCL. 一开始安装和配置PCL就被虐的 ...
- Lambda表达式浅析
Lambda 表达式是一种可用于创建"委托"或"表达式目录树"类型的"匿名函数".通过使用 lambda 表达式,可以写入可作为参数传递或作 ...
- Javassist学习总结
今天在弄dubbo时出现了一个依赖缺少问题,就好奇研究一下,这个依赖是啥. javassist是一个字节码类库,可以用他来动态生成类,动态修改类等等 1.介绍Javassist 要想将编译时不存在的类 ...
- 【转载】【收藏】Github上免费的编程教程【作者Victor Felder】
原链接:https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-zh. ...