如何查察运行程序的栈空间大小

[复制链接]
发表于 2024-10-14 21:12:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
近来遇到一个问题是如何看运行程序的堆栈占用大小,想到的一个办法是:利用寄存器值,rsp栈顶指针和rbp指针,获得栈空间实时大小。

步骤:


  • 设置断点
  • 表现info registers rsp栈顶指针
  • 利用bt命令表现当前堆栈
  • 根据表现的堆栈编号,使用frame $frameNo命令切换堆栈层次到堆栈的底部
  • 继续使用info registers rbp表现栈底指针
  • 利用python 做盘算器,将两次所在值相减,就得到运行堆栈的大致大小
   发起断点设置在堆栈的最深处,或某些大栈空间占用的场景
  
留意事项:


  • 此操纵步骤得当64位环境,32位环境仅是寄存器值名字的不同
  • 程序运行栈空间,不应该太满,需要有预留空间,从而引发栈溢出问题

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5

GMT+8, 2025-7-10 02:45 , Processed in 0.207185 second(s), 32 queries 手机版|qidao123.com技术社区-IT企服评测▪应用市场 ( 浙ICP备20004199 )|网站地图

快速回复 返回顶部 返回列表