读书人

static函数被编译成内联函数(inline)

发布时间: 2012-02-19 19:43:39 作者: rapoo

static函数被编译成内联函数(inline)
最近在移植systemtap到Arm平台,在android中运行。

当准备在signal.c中的函数handle_signal中插入探针的时候,提示找不到该函数的参数信息,经分析System.map,里面没有handle_signal的符号信息,后分析vmlinux,发现handle_signal被定义成了内联函数。

handle_signal定义是:
static int handle_signal(unsigned long sig, struct k_sigaction *ka,
siginfo_t *info, sigset_t *oldset,
struct pt_regs * regs, int syscall)


但是在vmlinux中看到的是被定义成inline函数。


请问有人知道是什么原因么。

[解决办法]
静态函数如果只被调用一次,内联是个只有好处没代价的动作,编译器当然会优化

读书人网 >UNIXLINUX

热点推荐