Set*_*jmp 5 c gcc object-code objdump
如果您在计算机输出中考虑了特定的C代码行,那么如何在objdump输出中找到它.这是一个例子
if (cond)
foo;
bar();
Run Code Online (Sandbox Code Playgroud)
我想看看栏是否按照我的意愿内联.或者你会使用一些替代工具而不是objdump?
您可以使用-S选项(如"objdump -Sd a.out")启动objdump .如果编译代码的源文件可用,它将显示与汇编代码混合的源代码.
或者,您可以使用以下方式:
int main(void) {
int a = 0;
asm("#");
return a;
}
Run Code Online (Sandbox Code Playgroud)
变
.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
Run Code Online (Sandbox Code Playgroud)