Ser*_*bov 2 linux assembly gcc x86-64
我很难弄清楚发生了什么。
以下是我gdb
在深入研究 Linux 时在会议printfn
中看到的内容stdio.h
:
#1 0x00007ffff7ddb81f in __printf (format=) at ./st
dio-common/printf.c:33第 488 章
第489章 39美元=(无效*)0x7ffff798fff8
到目前为止,一切都很好。
让我们进入下一个调用(即__vfprintf_internal
),看看 %rbp 会是什么:
(gdb) p $rbp
第504章 41美元=(无效*)0x7ffff7f95780< IO_2_1_stdout
两个值之间的差异是6313864
字节。这怎么可能?怎么了?!
PS 我明确使用-fno-omit-frame-pointer
来确保 %rbp 保存。