小编use*_*184的帖子

如何在Linux上使用核心转储和gdb来近似使用虚拟内存(VSZ)?

我正在编写一个用于核心转储分析的工具,我想要打印的一件事是估算进程在转储时使用了多少虚拟内存.这些核心转储可能是由于崩溃造成的,或者可以使用gcore手动获取(例如,用于调整大小).基本上,我想打印相当于PS VSZ列.

我已经研究过readelf和gdb,并专注于后者.例如,我有一个简单的程序,只是挂起,我在PS中看到:

$ ps auxwww | grep a.out
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     16644  0.0  0.0   4108   472 pts/5    S+   13:51   0:00 ./a.out
Run Code Online (Sandbox Code Playgroud)

我使用gcore取核心,此时它使用4,206,592字节的VSZ.然后我写了一个快速脚本,解析info target输出并对地址范围求和,得到1,814,528字节.我也试过,info proc mappings但似乎只有在进程运行时才有效.

有任何想法吗?

linux gdb

5
推荐指数
1
解决办法
1143
查看次数

标签 统计

gdb ×1

linux ×1