-1

出于分析目的,我们想知道地址中存储了哪些数据(消息)。是否有任何选项可以在 GDB 中查找消息。

换句话说,我们知道内存的地址(0x80488b4),但我们还想知道通过 GDB 存储在该地址中的消息。

示例代码:

(gdb) print option_value
$1 = (const void *) 0x80488b4
4

2 回答 2

1

如果您知道typemsg_t消息的类型,则可以取消引用它,例如print *(typemsg_t*) option_value

您可能还对 GDB观察点功能感兴趣。

值得花一些时间阅读GDB 文档

于 2013-07-09T10:28:53.103 回答
0

什么是“讯息”?您当然可以使用 gdb 的x(用于检查)命令检查该地址的内存内容:

(gdb) x option_value

如果您知道option_value,尽管在当前范围内看起来像 a ,但const void *实际上属于其他类型,您可以强制转换和取消引用:

(gdb) print *(MessageType *) option_value
于 2013-07-09T10:28:05.673 回答