我目前正在使用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
?我还没有找到任何有关解释此输出的大文档。任何帮助将不胜感激。