我很难弄清楚到底发生了什么.
以下是我在gdb
会议中看到的,当我从Linux上的stdio.h
深入到printfn
时:
#1 0x00007ffff7ddb81f in __printf (format=) at ./st
dio-common/printf.c:33488 ( gdb ) p
489$39=(空*)0x7ffff798fff8
到目前一切尚好.
让我们进入下一个调用(即__vfprintf_internal
),然后查看%RBP:
\65288gdb亿卢比
504$41=(空*)0x7ffff7f95780<;IO_2_1_stdout
这两个值之间的差值为6313864
个字节.那件事怎么可能?怎么回事?!
附注:我显式使用-fno-omit-frame-pointer
来确保%RBP保留.