【问题标题】:GDB: automatically flatten structures when printing / dumping to fileGDB:打印/转储到文件时自动展平结构
【发布时间】:2012-11-17 20:12:27
【问题描述】:

我有一个复杂的 C 结构,其中包含许多指向更复杂结构的指针。

在使用 GDB 进行调试时,我希望能够将结构展平到屏幕/文件中。

确实,我可以写一个很长的漂亮的打印机函数,但是由于所有的指针都是已知类型的(没有空指针),而且 GDB 已经知道如何手动调用 p *x 来做到这一点,可以用它来实现吗?这个?

通常 GDB 会打印结构的第一层而不递归地进入其他层。

【问题讨论】:

    标签: c debugging gdb


    【解决方案1】:

    通常 GDB 会打印结构的第一层而不递归地进入其他层。

    如果 GDB 不这样做,当你尝试打印循环链表时会发生什么?

    一般来说,在你的程序中编写一个漂亮的打印函数是一个好主意:总有一天你会有一个非调试可执行文件,你的结构的“根”在一个寄存器中,你会需要检查结构。

    但如果您不想这样做,可以在Python 中轻松编写通用的“遵循所有指针”漂亮的打印机。请注意不要在有循环的图表上调用这样的打印机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      相关资源
      最近更新 更多