c - violation - valgrind windows



Was bedeutet diese Valgrind-Warnung?-Warnbereich für die Adressbereiche (1)

Es bedeutet nur, dass die Berechtigungen in einem besonders großen Speicherblock geändert wurden.

Dies kann durch einen Aufruf von mprotect geschehen oder wenn eine sehr große Speicherzuweisung oder Freigabe erfolgt - z. B. ein munmap oder munmap Aufruf.

Die erste, die Sie auflisten, setzt ungefähr 320 MB Speicher auf undefined was höchstwahrscheinlich eine neue Zuweisung ist, die anfänglich als undefiniert markiert wird. Die anderen setzen beide Blöcke ähnlicher Größe auf noaccess was wahrscheinlich mit einer Freigabe des Speichers zusammenhängt.

Als ich mein Programm gegen valgrind ausführte, stieß ich auf folgende Warnung.

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)

Nach einigem Googeln habe ich hier festgestellt here dass es eine Diagnostic message, mostly for benefit of the Valgrind developers, to do with memory permissions , was mir nicht viel sagt.

Mein Programm reserviert eine große Menge an Speicher auf Heap. (Kann nach einer ganzen Reihe von realloc 2-3 GB RAM erreichen)

Die Warnung wurde jedoch angezeigt, obwohl keine der Zuweisungen fehlgeschlagen ist.

Also, ich frage mich, was diese Nachricht wirklich bedeutet? Ich habe keine Art von Speichererlaubnis? (Aber Zuordnung gelungen)





valgrind