c - C结构的内存布局可视化

标签 c parsing struct visualization declaration

我目前正在开发一个与其他汇编代码有大量接口(interface)的 C 项目。我们正在使用我们正在使用的控制 block 和结构的自制可视化,并且我正在锁定一个关于如何自动化该过程的过程。

由于每个汇编控制 block 都有一个 C 结构等效项,并且我们正在为一种非常罕见的架构编程,因此最简单的方法可能是可视化 C 结构。

我或多或少正在寻找一种从 TCP wiki 页面自动获取图表的方法,例如“用于校验和计算的 TCP 伪 header (IPv6)”:

TCP pseudo-header for checksum computation (IPv6)

遗憾的是,我还没有找到任何能够从 C 头文件生成此类可视化效果的开源工具。有没有一种方法可以生成此类图像或 html 表示而无需手动编写它们?

编辑:感谢 Alexey Frunze 的想法,使用实用程序 pahole 可以从目标文件的 DWARF 部分提取所有使用的结构的实际内存布局。

最佳答案

其中一种方法是使用这些结构编译您的 C 代码,并从对象/可执行文件的调试信息中提取结构信息。否则,您正在寻找/制作结构解析器或破解 clang。

UPD:从未尝试过,但有 pycparser ,这可能会有用。

关于c - C结构的内存布局可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35936526/

相关文章:

c# - 是否有一种紧凑的方式告诉 C# 编译器使用基本的 Equals 和 == 运算符?

c - 如何从文本文件中提取IP地址

c - 用指针计算后缀表达式?

regex - 明智地解析科学记数法?

parsing - Bison 错误恢复

c++ - 构建具有正确大小的结构元素

c - 2种结构声明的区别

c - 在 C 文件中找不到头文件中定义的结构

python - 如何摆脱逗号分隔字符串中的重复条目

c - 试图将结构成员复制到 c 中的字节数组