当前位置:  开发笔记 > 编程语言 > 正文

在机器代码中查找位置(gcc/objdump -d)

如何解决《在机器代码中查找位置(gcc/objdump-d)》经验,为你挑选了1个好方法。

如果您在计算机输出中考虑了特定的C代码行,那么如何在objdump输出中找到它.这是一个例子

if (cond)
   foo;
   bar();

我想看看栏是否按照我的意愿内联.或者你会使用一些替代工具而不是objdump?



1> Johannes Sch..:

您可以使用-S选项(如"objdump -Sd a.out")启动objdump .如果编译代码的源文件可用,它将显示与汇编代码混合的源代码.

或者,您可以使用以下方式:

int main(void) {
    int a = 0;
    asm("#");
    return a;
}

       .file   "a.c"
        .text
.globl main
        .type   main, @function
main:
        leal    4(%esp), %ecx
        andl    $-16, %esp
        pushl   -4(%ecx)
        pushl   %ebp
        movl    %esp, %ebp
        pushl   %ecx
        subl    $16, %esp
        movl    $0, -8(%ebp)
#APP
# 3 "a.c" 1
        #
# 0 "" 2
#NO_APP
        movl    -8(%ebp), %eax
        addl    $16, %esp
        popl    %ecx
        popl    %ebp
        leal    -4(%ecx), %esp
        ret
        .size   main, .-main
        .ident  "GCC: (GNU) 4.3.2"
        .section        .note.GNU-stack,"",@progbits


-S暗示-d.您不需要同时指定两者.:-P
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有