gpt4 book ai didi

c - 这个 Valgrind 警告是什么意思? - 警告设置地址范围权限

转载 作者:IT王子 更新时间:2023-10-28 23:28:22 28 4
gpt4 key购买 nike

当我针对 valgrind 运行我的程序时,我遇到了以下警告。

Warning: set address range perms: large range [0x4d59d040, 0x6159d040) (undefined)
Warning: set address range perms: large range [0x194f7030, 0x2d4f7050) (noaccess)
Warning: set address range perms: large range [0x3959d030, 0x6159d050) (noaccess)

经过一番谷歌搜索后,我发现 here这是一个诊断消息,主要是为了 Valgrind 开发人员的利益,与内存权限有关,这并没有告诉我太多。

我的程序确实在堆上分配了大量内存。 (在一大堆 realloc 之后可以达到 2-3 GB 的内存)

但是,尽管没有任何分配失败,但还是出现了警告。

所以,我想知道这条消息的真正含义是什么?我没有某种内存权限? (但分配成功)

最佳答案

这只是意味着在一个特别大的内存块上权限发生了变化。

这可能是因为调用 mprotect 或发生非常大的内存分配或释放时 - mmapmunmap例如打电话。

您列出的第一个是为 undefined 设置大约 320Mb 的内存,这很可能是一个新分配,最初将被标记为未定义。其他人都将类似大小的 block 设置为 noaccess 这可能与内存的释放有关。

关于c - 这个 Valgrind 警告是什么意思? - 警告设置地址范围权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13558067/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com