您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Linux内核-实时查看为什么System.map中的函数地址比其地址早一个字节?

Linux内核-实时查看为什么System.map中的函数地址比其地址早一个字节?

我的猜测是您正在 以Thumb模式 在ARM 上运行 ,或者在其他使用功能指针的最低位指示运行模式的体系结构上运行。

如果是这样,答案是您的函数 确实位于system.map中的地址

您在运行时获得的值是位置 和模式

在这类架构上,指令必须始终对齐2或4字节,这将使最低位始终为零。当体系结构增加了额外的模式时,设计人员利用“浪费”位对模式进行编码。这很聪明,但很困惑,而且不仅仅针对您:初次发明时,许多软件(例如调试器)以许多讨厌的方式损坏。

对于习惯于使用任意随机对齐方式来可变长度指令的x86程序员而言,此概念尤其令人困惑。

其他 2022/1/1 18:18:23 有470人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶