读书人

gcc 如何得到函数的结束地址

发布时间: 2013-09-05 16:02:06 作者: rapoo

gcc 怎么得到函数的结束地址
比如一个函数
int a(){...};
用int n=(int)a可以得到起始地址
那结束地址呢?
[解决办法]
你获取结束地址有啥意义?

[解决办法]
本帖最后由 steedhorse 于 2013-08-22 19:31:36 编辑 从语言层面,应该是很难实现的。
不同平台上,通过相应的库(如Linux上的libelf)分析二进制文件的导出表,可以得出函数的长度,从而得到结束位置,但只限于符号表中有相应项目的。
还有,函数结束位置只有一个,但函数的出口未必只有一个(比如存在多条ret指令的)。
不清楚你的需要到底是什么。
[解决办法]

引用:
从语言层面,应该是很难实现的。
不同平台上,通过相应的库(如Linux上的libelf)分析二进制文件的导出表,可以得出函数的长度,从而得到结束位置,但只限于符号表中有相应项目的。
还有,函数结束位置只有一个,但函数的出口未必只有一个(比如存在多条ret指令的)。
不清楚你的需要到底是什么。

csdn老人啊!
[解决办法]
引用:
其实我就是想知道编译成代码后,函数代码的整体长度,然后写入到其他进程里面啊

做成动态链接库就好了。

读书人网 >C语言

热点推荐