【发布时间】:2013-01-06 17:34:25
【问题描述】:
我想在fedora 中用Kprobe 计算malloc 系统调用。
我知道malloc 不是系统调用,是在用户空间中实现的,但如果可能的话,我想用 kprobe 来计算 malloc。
我必须给 Kprobe 的系统调用的名称是什么? 以 do_work 为例:
kp.addr = (kprobe_opcode_t *) kallsyms_lookup_name("do_fork");
【问题讨论】:
-
malloc是不是系统调用。在 GNU Glibc 库中,它是使用mmap和sbrk系统调用实现的。也许您想在您的用户应用程序上使用valgrind....内核本身正在使用kmalloc和相关的内核函数分配动态内存(在内核内部,而不是为应用程序)。 -
您也可以使用
pmap,对于pid 1234的进程,查看/proc/1234/status和/proc/1234/maps等...
标签: linux-kernel malloc system-calls fedora kprobe