首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-09-05 
gcc 怎么得到函数的结束地址比如一个函数int a(){...}用int n(int)a可以得到起始地址那结束地址呢?[解决

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

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

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

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

做成动态链接库就好了。 

热点排行