【发布时间】:2011-10-31 08:46:57
【问题描述】:
出于调试目的,我需要测试一个指针以查看它是否指向有效的可读页面。目前我正在解析 /proc/[pid]/maps 以查看地址是否映射正常,但这似乎有点冗长。有没有更好的办法?谢谢。
【问题讨论】:
-
我也在解析
/proc/self/maps -
@GregoryPakosz:为了成为一个通用且可靠的解决方案,是否需要在每次检查时重新加载和重新解析映射以解决诸如不断增长的堆或新映射的内存段之类的问题?
-
@etherice:不,因为 /proc 是自刷新的;每次访问 /proc 文件时,内核代码都会运行并重新生成它的“内容”。
-
@etherice 我相信这是正确的。在存在并行性、中断或硬件故障的情况下,任何对此的解决方案基本上都是不可靠的。使用时间竞赛窗口 (CWE-367) 有一个检查时间。地址指向的内存在检查地址和使用地址之间可能会被取消映射、保护或中毒。
标签: linux memory segmentation-fault memory-address