Coredump-n: 内存占用太多导致应用程序起不来的一例

问题

前几天同事说写的代码编译到了程序之后,应用起不来,发现内存不够用。这种情况如何分析呢?

问题倒推的思路

这种根据现象倒推问题的思路就这么几个:

  1. 看是否bss区的占用太大;
  2. 通过内存申请跟踪工具,查看哪一个模块占用内存比较多;
  3. 再就是实时查看/proc/pid/maps; 看栈上的空间是否有异样;
  4. 是否有内存泄漏
  5. 使用gcore来生成实时的core文件来分析栈里的内容。

使用的方法

第一个方向:读取程序的data、bss段大小

readelf -S a.out

Section Headers:
  

猜你喜欢

转载自blog.csdn.net/qq_36428903/article/details/133022913