Category Archives: tricks-and-tips-系列

DTrace tricks and tips (15) -通过二级指针访问内存的值

由于DTrace probe在操作系统的kernel空间执行,所以不能直接访问进程user space的内容。通常要使用copyincopyinstr这些函数把进程user space的内容copy出来。如果程序里的变量是个二级指针,就要相对麻烦一些。以下面程序为例(编译成32位的程序,所以指针用[……]

阅读全文

DTrace tricks and tips (13) -查看模块是否包含CTF数据

CTFCompact C Type Format)包含了下面信息:
a)所有类型和结构体的定义;
b)每个函数的参数和类型;
c)函数返回值的类型;
d)全局变量的类型。

因此如果有CTF数据,就可以有args[]变量信息。如何查看模块是否包含CTF数据?可以用以下命令:

bash[......]

阅读全文

DTrace tricks and tips (12) –指定程序链接库作为module的命名规则

有时,我们需要使用DTrace追踪程序的链接库的函数,这时module名字就应该是链接库的名字。什么样的名字是有效的呢?让我做个实验验证一下。

我的程序链接了MySQLclient库,执行下面这些命令:

bash-3.2# dtrace -n 'pid$target::mysql_real[......]

阅读全文