mlock 是否会阻止页面出现在核心转储中?

问题描述 投票:0回答:1

我有一个带有一些敏感内存的进程,决不能将其写入磁盘。

我还有一个要求,我需要核心转储来满足客户的首次数据捕获要求。

使用 mlock() 锁定页面是否会阻止该页面出现在核心转储中?

注意,这是一个嵌入式系统,我们实际上没有任何交换空间。

memory-management embedded-linux coredump
1个回答
0
投票

摘自

man 2 madvise

madvise() 系统调用建议内核如何处理 从地址 addr 开始的地址范围内的分页输入/输出 具有大小长度字节。它允许应用程序告诉内核 它期望如何使用一些映射或共享内存区域,以便 内核可以选择适当的预读和缓存技术。 此调用不会影响应用程序的语义(除了 在 MADV_DONTNEED 的情况下),但可能会影响其性能。这 内核可以忽略该建议。

特别检查选项

MADV_DONTDUMP

从核心转储中排除 addr 指定范围内的那些页面 和长度。这对于具有大面积的应用程序非常有用 已知在核心转储中无用的内存。的效果 MADV_DONTDUMP 优先于通过设置的位掩码 /proc/PID/coredump_filter 文件(参见 core(5))。

© www.soinside.com 2019 - 2024. All rights reserved.