首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

static函数被编译成内联函数(inline)解决方案

2012-02-19 
static函数被编译成内联函数(inline)最近在移植systemtap到Arm平台,在android中运行。当准备在signal.c中的

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


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

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

热点排行