dtrace的使用
来源:互联网 发布:软件开发半年工作总结 编辑:程序博客网 时间:2024/05/17 03:07
之前利用dtrace脚本检测用户进程的函数调用,一直说找不到函数符号,现在突然反应过来,C++
的符号不是函数名,而是一个畸形的名称:
libcommon.so
#include "common.hpp"
class commonImpl : public common {
public:
virtual void sayHello(void) {
std::cout << "sayHello" << std::endl;
}
~commonImpl(void) throw();
};
commonImpl::~commonImpl(void) throw() {
}
common::~common(void) throw() {
}
common & common::instance(void) {
static commonImpl s_commonImpl;
return s_commonImpl;
}
test_main:
#include <iostream>#include "common.hpp"
void callme(void) {
while (true) {
common & comm = common::instance();
comm.sayHello();
sleep(10);
}
}
int main() {
callme();
return 0;
}
dtrace.d 脚本
#!/usr/sbin/dtrace -s
#pragma D option quiet
pid$target:libcommon:_ZN10commonImpl8sayHelloEv:entry
{
printf("dump:%-15s: %8x\n", probefunc, arg0);
}
pid$target:::entry,
pid$target:::return
{
printf("pid %s\n", probefunc);
}
执行结果:
dump:_ZN10commonImpl8sayHelloEv: fef81718
- dtrace的使用
- 使用Dtrace检查recv()的返回值
- DTrace的变量类型
- DTrace
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- Solaris上使用DTrace进行动态跟踪
- Solaris10中新的Dtrace工具
- Windows Hook和Dtrace的区别
- Linux 下的调式诊断工具 DTrace
- Erlang虚拟机基础设施dtrace探测点介绍和使用
- 从orale网站找到的一个介绍dtrace的资料
- 关于Dtrace对于linux操作系统的支持 摘自oracle网站
- DTrace简介
- windows下,使用netbeans远程连接solaris11开发C++,并且使用DTrace工具
- Servlet基础_0100_HelloWorld
- Android应用开发中如何使用隐藏API
- sql语句录
- 归并排序
- VC 字符串和数字转换函数
- dtrace的使用
- c# 绝对好用 音乐标签读取代码 id3v2 id3v1 读取
- 一个成功的Git分支模型 .
- POJ 2486 Apple Tree 树形DP
- 方法参数传递(引用传递)
- 关于C语言中的结构体对齐
- VC CString类
- 写给即将入行的程序员的一封信
- AndroidManifest.xml 详解 (一) 之<manifest>——译自《Beginning Android Games》