聘我网

新概念招聘3.0

linux如何得到每行C对应的汇编?

vote up0vote downstar

rt,

记得visual studio有这个功能,

linux可否呢?

 

1 个答复

vote up0vote downcheck
[xx@ test]# objdump -d test_utf8 -S -l --start-address 0x0000000000400d50 --stop-address 0x0000000000400d88

test_utf8:     file format elf64-x86-64


Disassembly of section .text:

0000000000400d50 <zalloc>:
zalloc():
/root/test/alloc.c:19

void *
alloc(size_t size)
{
    void  *p;

  400d50:   55                      push   %rbp
  400d51:   48 89 e5                mov    %rsp,%rbp
  400d54:   48 83 ec 20             sub    $0x20,%rsp
  400d58:   48 89 7d e8             mov    %rdi,-0x18(%rbp)
/root/test/alloc.c:22
    p = malloc(size);

    return p;
  400d5c:   48 8b 7d e8             mov    -0x18(%rbp),%rdi
  400d60:   e8 cc ff ff ff          callq  400d31 <alloc>
  400d65:   48 89 45 f8             mov    %rax,-0x8(%rbp)
/root/test/alloc.c:24
}

  400d69:   48 83 7d f8 00          cmpq   $0x0,-0x8(%rbp)
  400d6e:   74 12                   je     400d82 <zalloc+0x32>
/root/test/alloc.c:25
void *
  400d70:   48 8b 55 e8             mov    -0x18(%rbp),%rdx
  400d74:   48 8b 7d f8             mov    -0x8(%rbp),%rdi
  400d78:   be 00 00 00 00          mov    $0x0,%esi
  400d7d:   e8 86 f9 ff ff          callq  400708 <memset@plt>
/root/test/alloc.c:28
zalloc(size_t size)
{
    void  *p;
  400d82:   48 8b 45 f8             mov    -0x8(%rbp),%rax
/root/test/alloc.c:29

  400d86:   c9                      leaveq 
  400d87:   c3                      retq   

以上的前提是test_utf8带有调式符号。

链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.