gdb - 解释FILE类型的print输出

时间:2014-09-08 09:21:42

标签: c file gdb

我目前正在使用gdb来调试文件。我在其中一个文件的方法中设置了一个断点,它接受两个FILE指针作为参数。我在其中一个传递的参数(print *filename1)上运行了filename1。它输出如下:

$4 = {_flags = -72540028, _IO_read_ptr = 0x0, _IO_read_end = 0x0, _IO_read_base = 0x0, 
  _IO_write_base = 0x0, _IO_write_ptr = 0x0, _IO_write_end = 0x0, _IO_buf_base = 0x0, 
  _IO_buf_end = 0x0, _IO_save_base = 0x0, _IO_backup_base = 0x0, _IO_save_end = 0x0, 
  _markers = 0x0, _chain = 0x7ffff7dd4340, _fileno = 1, _flags2 = 0, _old_offset = -1, 
  _cur_column = 0, _vtable_offset = 0 '\000', _shortbuf = "", _lock = 0x7ffff7dd5ab0, 
  _offset = -1, __pad1 = 0x0, __pad2 = 0x7ffff7dd4580, __pad3 = 0x0, __pad4 = 0x0, __pad5 = 0, 
  _mode = 0, _unused2 = '\000' <repeats 19 times>}

应该注意的是,对其他文件名执行print filename2会产生以下结果:$1 = (FILE *) 0x7ffff7dd4340

我想知道的是我如何解释这些价值观?什么是_flags_chain?我还没有找到任何有关解释此输出的大文档。任何帮助将不胜感激。

0 个答案:

没有答案