日期:2014-05-16  浏览次数:20769 次

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函数。


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

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