首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >此Valgrind警告是什么意思?-警告设置地址范围权限

此Valgrind警告是什么意思?-警告设置地址范围权限
EN

Stack Overflow用户
提问于 2012-11-26 10:55:48
回答 1查看 35K关注 0票数 88

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

代码语言:javascript
复制
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上发现它是一个Diagnostic message, mostly for benefit of the Valgrind developers, to do with memory permissions,这并不能告诉我太多。

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

然而,尽管没有一个分配失败,警告还是出现了。

所以,我想知道这条信息到底是什么意思?我没有某种记忆权限?(但分配成功)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-26 17:11:18

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

发生这种情况的原因可能是调用了mprotect,或者发生了非常大的内存分配或释放-例如mmapmunmap调用。

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

票数 90
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13558067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档