Cat*_*kul 1 linux memory-management out-of-memory segmentation-fault
如何检测段内故障是否由内存不足情况引起?
我有一个段错误,无法通过valgrind和duma/efence进行诊断,因为它似乎会自动崩溃这些工具(Valgrind"发生了一次",duma:"mprotect()失败:无法分配内存")
应用程序(Gazebo)只是崩溃了一个段错误,而堆栈跟踪似乎没有提供很多关于原因的提示.
TLDR:是否有一个简单的工具或方法来确认或排除内存不足的情况是导致段错误的原因?
(top在崩溃前没有显示过多的内存使用量)
在Linux上,内存不足的情况可以通过以下两种方式之一表现出来:
brk()或mmap()调用失败ENOMEM.此后不久,应用程序尝试取消引用从malloc()崩溃返回的NULL指针.因此,您可以通过检查strace未显示brk()或mmap()调用失败来排除ENOMEMOOM,并验证在dmesg 中不显示任何OOM杀手消息.
| 归档时间: |
|
| 查看次数: |
3416 次 |
| 最近记录: |