我了解堆栈框架。但是如果我是对的,在调用函数之前,该函数的参数将被推入堆栈框架。
例如,
int main(void)
{
printf("hi everyone %d \n", 3);
return 0;
}
在这种情况下,在主堆栈框架中,“大家好%d \ n”的地址和3应该被压入,然后调用printf(如果我是对的)。
但是当我使用gdb时没有这样的指令。
我正在研究字符串格式漏洞。但是我上面写的没有发生。我怎么了
最佳答案
本文有关GCC compiler can optimize code to replace some types of call with equivalent, but not identical, operations如何提供帮助。
您提供的示例将是此类优化的主要目标。