当前位置: 技术问答>linux和unix
static函数被编译成内联函数(inline)
来源: 互联网 发布时间:2017-01-31
本文导语: 最近在移植systemtap到Arm平台,在android中运行。 当准备在signal.c中的函数handle_signal中插入探针的时候,提示找不到该函数的参数信息,经分析System.map,里面没有handle_signal的符号信息,后分析vmlinux,发现handle_signal被...
最近在移植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函数。
请问有人知道是什么原因么。
当准备在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函数。
请问有人知道是什么原因么。
|
静态函数如果只被调用一次,内联是个只有好处没代价的动作,编译器当然会优化
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。