如何在GDB中分析无类型缓冲区

时间:2017-07-19 16:18:37

标签: c gdb

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

现在,假设我们读了像

这样的页面

buf

我想知道的是:有没有一种方便的方法来分析double的内容,将它们重新解释为GDB中的其他类型?例如,如何检查此页面开头的0x3F处的3.14值是否为private newCommand() { cmd.CreateCommand("command") .Do(async (e) => { // Some command stuff } }

提前致谢。

1 个答案:

答案 0 :(得分:2)

试试这个:

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