gpt4 book ai didi

c - 如何在 GDB 中分析非类型化缓冲区

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:43 25 4
gpt4 key购买 nike

我正在开发一个 C 应用程序,它向文件写入和读取大量二进制数据。文件访问是由页面完成的,就像在数据库中一样。

现在,假设我们阅读这样的页面

char *buf = malloc(PAGE_SIZE);
pread(fd, buf, PAGE_SIZE, nth * PAGE_SIZE);

我想知道的是:有没有一种方便的方法来分析 buf 的内容,将它们重新解释为 GDB 中的其他类型?例如,如何检查此页面开头 0x3F 处的 double 值是否为 3.14

提前致谢。

最佳答案

试试这个:

print *((double*)buf+0x3f)
  • (buf+0x3f) - 指向内存中有趣部分的指针
  • (double*)(ptr) - 将其转换为指向 double 的指针
  • "*(ptr)"- 访问它的值

关于c - 如何在 GDB 中分析非类型化缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45195979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com