【发布时间】:2014-08-12 13:05:34
【问题描述】:
用 gcc 编译了一个简单的 hello world 程序。
int main( int argc, char** argv )
{
printf( "hello, world!\n" );
printf( "Vale!\n" );
return 0;
}
otool -lV a 给了我以下信息:
Section
sectname __stubs
segname __TEXT
addr 0x0000000100000f7a
size 0x0000000000000006
offset 3962
align 2^1 (2)
reloff 0
nreloc 0
type S_SYMBOL_STUBS
attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
reserved1 0 (index into indirect symbol table)
reserved2 6 (size of stubs)
当我使用 gdb 时,我得到:
gdb ./a
(gdb) x/2i 0x0000000100000f7a
0x100000f7a: jmpq *0x90(%rip) # 0x100001010
0x100000f80: lea 0x81(%rip),%r11 # 0x100001008
这是我在使用 lldb 时感兴趣的值 #0x100001010 和 #0x100001008,但是当我使用 lldb 时,我看到的是:
lldb ./a
(lldb) x/2i 0x0000000100000f7a
0x100000f7a: ff 25 90 00 00 00 jmpq *0x90(%rip)
0x100000f80: 00 00 addb %al, (%rax)
有没有办法让 lldb 提供与 gdb 相同的值(#0x100001010 和 #0x100001008)?
【问题讨论】: