disassemble on Linux x64

"jj shen" <[email protected]>
Newsgroups gmane.comp.gdb.general
Message-ID <[email protected]>
Hi,

I try to disassemble a simple program on x64 Linux using GDB.

The test program is like:


> main()
> {
>   getuid();
> }
>

"disassemble main" shows that getuid() corresponds to "callq *addr*". But
when I try to "disassemble getuid" or "disassemble *addr*", GDB says it is
not a vaild function address.

Why, while it is ok on x86 Linux? Is callq a new instruction added by
x86-64? What is the difference to the call instruction?

Another question: do I need to use a 32-bit GDB to debug 32-bit program?

Thanks,

Shen
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.