我有一个进程,它有一些敏感的内存,决不能写到磁盘上。
我还有一个需求,那就是我需要核心转储来满足客户的首次数据捕获需求。
使用mlock()锁定页面会阻止页面出现在核心转储中吗?
注意,这是一个嵌入式系统,我们实际上没有任何交换空间。
发布于 2014-02-03 18:00:45
摘自man 2 madvise
系统调用madvise()通知内核如何处理地址范围内的分页输入/输出,该地址范围从地址addr开始,大小为字节。它允许应用程序告诉内核它希望如何使用一些映射或共享内存区域,以便内核可以选择适当的预读和缓存技术。此调用不会影响应用程序的语义(MADV_DONTNEED的情况除外),但可能会影响其性能。内核可以自由地忽略该建议。
特别要检查选项MADV_DONTDUMP:
从核心转储中排除由addr和length指定的范围内的那些页面。核心的效果优先于通过/proc/PID/ MADV_DONTDUMP _filter文件设置的位掩码(参见core(5))。
https://stackoverflow.com/questions/21486306
复制相似问题