【发布时间】:2014-09-10 04:27:40
【问题描述】:
我有一个在无头/嵌入式 Linux 机器上运行的程序,在某些情况下,该程序似乎占用了比我预期的更多的内存(如 top 等报告)使用。
由于故障情况很难在实际工作环境之外重现,并且由于嵌入式盒子没有安装 valgrind 或 gdb 等细节,我想做的只是写出进程的堆内存到一个文件,然后我可以将其传输到我的开发机器并在闲暇时查看,看看我是否可以从文件的内容中判断出占用了大部分堆的数据类型。如果我幸运的话,可能会出现很多像重复字符串或幻数这样的确凿证据,这将我指向我的代码中泄漏的地方,或者可能只是无限制地增长数据结构。
有什么好办法吗?我能想到的唯一方法是强制进程崩溃,然后收集核心转储,但由于故障情况很少见,如果我可以收集信息而不会使进程崩溃作为副作用,那将是更可取的。
【问题讨论】:
标签: linux debugging heap-memory