我正在尝试将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。
答案 0 :(得分:3)
具体来说,以下数字+4722和+4281是什么意思
地址0x00002ad61e45bd02
的指令,距离当前函数的开头4722个字节(很可能是MsgManager::ForwardMsg()
)是跳转到地址0x2ad61e45bb49
,从一开始就是4281字节MsgManager::ForwardMsg()
。
您也可以找到(gdb) disas/m
命令。