gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 14:55:46 25 4
gpt4 key购买 nike

如果您想在机器输出中检查特定的 C 代码行,您将如何在 objdump 输出中找到它。这是一个例子

if (cond)
foo;
bar();

我想看看 bar 是否按照我的意愿内联。或者您会使用一些替代工具来代替 objdump 吗?

最佳答案

您可以使用 -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

关于c - 在机器代码中查找位置 (gcc/objdump -d),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com