繁体   English   中英

Mach-O文件LC_FUNCTION_STARTS加载命令

[英]Mach-O file LC_FUNCTION_STARTS load command

有谁知道Mach-O LC_FUNCTION_STARTS命令指向的数据格式是什么?

我能找到的最多信息是在loader.h头文件中:

#define LC_FUNCTION_STARTS 0x26 /* compressed table of function start addresses */

我看到dyldinfo工具有一个-function_starts选项来分析这些数据并且该工具是开源的,但该工具的最新发布版本不包含支持:

http://opensource.apple.com/source/ld64/ld64-97.2/src/other/dyldinfo.cpp

有谁知道我在哪里可以获得最新版本的dyldinfo的源代码,或者我可以获得有关此加载命令的更多信息?

谢谢!

它由需要在崩溃日志,样本,spindump等中表示地址的工具使用,以确定给定地址是否属于函数内部。 它对调试器也很有用,可以帮助他们更快地找到给定地址所在函数的边界。

此部分中的数据被格式化为DWARF样式ULEB128值的零终止序列。 第一个值是从__TEXT段开始到第一个函数开始的偏移量。 其余值是下一个函数开始的偏移量。

由于我在几天内没有得到任何额外的答案或评论,我想我也可以自己回答这个问题。 解决方案基本上就是我在上面的评论中提出的:

最新版本的dyldinfo位于:

http://opensource.apple.com/source/ld64/ld64-127.2/src/other/dyldinfo.cpp

但是我仍然没有弄清楚函数的确切用途是什么,如果有人有信息,我仍然会欣赏它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM