como - ¿Qué significa esta advertencia Valgrind?-advertencia configura rango de direcciones permanentes
como usar valgrind (1)
Simplemente significa que los permisos cambiaron en un bloque de memoria particularmente grande.
Eso puede suceder debido a algo así como una llamada a mprotect
o cuando se produce una asignación o desasignación de memoria muy grande, por ejemplo, una llamada mmap
o munmap
.
El primero que enumera establece alrededor de 320Mb de memoria para undefined
que es muy probable una nueva asignación, que se marcará como indefinida inicialmente. Los otros están estableciendo bloques de tamaño similar a noaccess
que probablemente se relaciona con una desasignación de memoria.
Cuando estaba ejecutando mi programa contra valgrind, encontré la siguiente advertencia.
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)
Después de buscar en Google encontré here que es un Diagnostic message, mostly for benefit of the Valgrind developers, to do with memory permissions
, lo que no me dice mucho.
Mi programa asigna una gran cantidad de memoria en el montón. (Puede alcanzar 2-3 GB de RAM después de un montón de realloc
)
Sin embargo, la advertencia apareció a pesar de que ninguna de las asignaciones falló.
Entonces, me pregunto qué significa realmente este mensaje. No tengo algún tipo de permiso de memoria? (Pero la asignación tuvo éxito)