gcc - 是否可以从编译器(LLVM/GCC)生成堆栈槽位置信息?
问题描述
我正在做一个小型研究项目。给定一个应用程序(源代码或 ELF 二进制文件),我需要知道每个函数的堆栈对象信息。例如,我需要知道堆栈对象的位置(从 RBP 的偏移量)和大小,如果可能的话,还想知道访问堆栈对象的指令。
以下是我正在考虑的一些方向:
- 我可以反汇编二进制文件,找到所有包含偏移量的指令。但我无法使用此方法获取堆栈对象大小。
- 看一下 DWARF 信息,可能它包含堆栈对象位置。
- 我注意到LLVM stackmap,但描述它的文档很少。
对这个问题有什么建议吗?
解决方案
推荐阅读
- google-cloud-platform - 如何将配置文件传递给 Google Compute Engine 上的 docker run 命令?
- javascript - WARN 试图在未附加到 Activity REACT-NATIVE 时显示警报
- html - 需要帮助使 iframe 响应
- reactjs - 如何把它变成函数基础的 React 代码?
- django - 使用 ModelViewSet 在 URL 中传递自定义参数
- css - Bootstrap:收缩列
- javascript - 链接 jquery 循环以做出反应,什么都不显示,没有错误
- google-apps-script - 尝试创建一个脚本,如果他们回答错误,则在表单提交时向提交者发送一封电子邮件
- r - 有没有办法手动调整猿/植物工具中系统发育的颜色渐变边界?
- ios - SwiftUI - 使 Picker 默认值成为占位符