一,前言
如约而至,献上c/c++在调用函数过程中关于栈平衡
的心得,帮助大家了解内存中关于栈空间的分配过程(ps:栈平衡通常也被说成堆栈平衡);
话不多说,下面以函数 int __cdecl GetResult(int uParamA, int uParamB)
的调用过程讲解C/C++
内存中的栈空间分配;
二,栈平衡过程
如上图所示,函数调用过程中,栈平衡让程序调用函数前后的内存保持了一致;使得程序可以正常执行;
执行函数 int __cdecl GetResult(int uParamA, int uParamB)过程如下:
三,总结
栈平衡需要涉及以下几个方面,在这里总结一下:
1、栈内存空间的分配遵循数据结构中的先进后出
原则;
2、出栈(POP)、入栈(PUSH)
操作必须保持平衡;防止栈溢出或者非法访问;
3、需要对栈空间进行实时监控
,比如栈空间大小,异常栈操作的识别处理等;
讲完啦,偶尔吃吃精神粮食还是不错的;脑瓜子突然想起x32/64 dbg的一些日志操作指令感觉可以写写;找个时间分享分享吧,拜拜;