【发布时间】:2018-12-18 15:13:38
【问题描述】:
我正在尝试使用 Valgrind 在嵌入式 Linux 目标上调试崩溃程序。当没有运行时,系统大约有 31 MB 的可用内存,我的程序使用大约 2 MB 的内存,剩下 29 MB 给 Valgrind。不幸的是,当我尝试在 Valgrind 下运行我的程序时,Valgrind 报错:
Valgrind's memory management: out of memory:
initialiseSector(TC)'s request for 27597024 bytes failed.
50,388,992 bytes have already been mmap-ed ANONYMOUS.
Valgrind cannot continue. Sorry.
有什么方法可以减少 Valgrind 的内存使用量,使其在这种环境中成功运行?还是我运气不好?
【问题讨论】:
-
是什么让你想在这里运行 valgrind?当您的程序最初告诉您时,核心转储中的堆栈跟踪是什么?
-
在 Linux 桌面 PC 上通过 Valgrind 测试代码,而不是试图将其压缩到您的目标上。
-
或者使用比生产设备更多 RAM 的原型。这是常见的做法。
标签: memory embedded out-of-memory valgrind embedded-linux