GDB - 显示地址

时间:2015-09-24 13:43:35

标签: c memory assembly gdb disassembly

在gdb中查看的一段代码中,如下所示:

0x8e4e <boot1main+1>:   mov    %esp,%ebp
0x8e50 <boot1main+3>:   push   %esi
0x8e51 <boot1main+4>:   mov    0xc(%ebp),%esi
0x8e54 <boot1main+7>:   push   %ebx
0x8e55 <boot1main+8>:   mov    0x10(%ebp),%ebx
0x8e58 <boot1main+11>:  sub    $0xc,%esp
0x8e5b <boot1main+14>:  push   $0x3
0x8e5d <boot1main+16>:  call   0x8bb6 <roll>
0x8e62 <boot1main+21>:  movl   $0x8f84,(%esp)
0x8e69 <boot1main+28>:  call   0x8b77 <putline>

左边地址的确切含义是什么?这些是装配说明在机器上的位置吗? (即0x8e4e,0x8e50)。

上面的代码是在没有设置虚拟内存的情况下生成的。实际上,它代表了我正在追踪的一些启动加载器代码。

对于普通的C程序,左侧虚拟地址上的那些地址是什么?

1 个答案:

答案 0 :(得分:1)

是的,这是您正在查看的代码的地址。是的,对于&#34;正确的#34;正常的C程序操作系统,地址将是虚拟的。