3

我正在尝试将 gdb 反汇编输出(disas [address])与源代码进行匹配。我知道可以使用(gdb) info line *address来查找匹配行来完成此类映射。但是我不太明白反汇编输出的格式。具体来说,以下数字 +4722 和 +4281 是什么意思?

0x00002ad61e45bd02 <+4722>:  jmpq   0x2ad61e45bb49     <MsgManager::ForwardMsg(boost::shared_ptr<Channel>, boost::shared_ptr<Msg>, boost::shared_ptr<Context>)+4281>

我正在使用 GNU gdb (GDB) 7.4.1。

4

1 回答 1

4

具体来说,以下数字 +4722 和 +4281 是什么意思

address 处的指令,0x00002ad61e45bd02距当前函数的开头 4722 字节(很可能MsgManager::ForwardMsg())是跳转到 address 0x2ad61e45bb49,距 4281 字节的开头MsgManager::ForwardMsg()

您可能还会发现(gdb) disas/m命令很方便。

于 2013-04-26T02:09:39.260 回答