gdb:确定没有源的寄存器内容。

gdb:确定没有源的寄存器内容。,gdb,Gdb,通过浏览核心文件,我能够将其缩小到特定的故障点,并检查寄存器。 通常寄存器值为null,这很好地表明传递了null值并导致了问题 问题是如果有一个有效的地址会发生什么 该地址的内容是否可以在没有来源的情况下确定 如果没有源,是否可以确定地址是否指向某个结构,如果是,是否可以确定该结构的所有属性 该地址的内容是否可以在没有来源的情况下确定 当然。假设$rax的值为0x12345678。您可以使用(gdb)x/gx$rax 如果没有源,则可以确定地址是否指向结构 一般来说:不是。如果结构需要某种对齐

通过浏览核心文件,我能够将其缩小到特定的故障点,并检查寄存器。 通常寄存器值为null,这很好地表明传递了null值并导致了问题

问题是如果有一个有效的地址会发生什么

该地址的内容是否可以在没有来源的情况下确定

如果没有源,是否可以确定地址是否指向某个结构,如果是,是否可以确定该结构的所有属性

该地址的内容是否可以在没有来源的情况下确定

当然。假设
$rax
的值为
0x12345678
。您可以使用
(gdb)x/gx$rax

如果没有源,则可以确定地址是否指向结构

一般来说:不是。如果结构需要某种对齐,并且地址没有正确对齐,则可以确定地址没有指向结构。或者,如果地址指向某个页面的最后4个字节,而下一个页面未映射,并且结构大小大于4个字节

如果是这样的话,你能确定结构的所有属性吗

如果您确实认为地址指向一个结构,您可以检查它的内容。请参见如何在GDB中方便地执行此操作