我想知道究竟.cfi_remember_state
是如何实现的。我知道它是一个伪操作,所以我想它在组装时会转换成几条指令。我很感兴趣使用什么确切的指令来实现它。我尝试了很多方法来弄清楚。即:
- 阅读 GAS 源代码。但是没有找到足够有用的东西。
- 阅读 GAS 文档。但
.cfi_remember_state
条目只是一个简单的玩笑(字面意思)。 - 试图找到一个 gcc 开关,它可以让 gcc 从 C 代码生成 asm 并带有“扩展”的伪操作。无法为 x86 / x86-64 找到这样的开关。(如果有人能指出这样的开关,那就太好了,假设它存在,顺便说一句。)
- Google-fu && 在 SO 上搜索并没有产生任何有用的东西。
在我看来,唯一的其他解决方案是读取组装可执行文件的二进制文件并尝试推断指令。然而,我想避免这样一项艰巨的任务。你们中的任何人,谁知道,可以启发我,它是如何在 x86 和/或 x86-64 上实现的?也许与分享该信息的获取方式/位置一起,以便我可以检查其他伪操作,如果我有需要的话?