J'ai une fuite de mémoire quelque part, mais il ne semble pas être liée à mon programme. Je fais cette déclaration audacieuse basée sur le fait qu'une fois que mon programme se termine, soit par seg-faulting, soit en quittant, ou en abandonnant, la mémoire n'est pas récupérée. Si mon programme était le coupable, je supposerais que le MMU récupérerait tout, mais cela ne semble pas être le cas.Fuite de mémoire ARM/Linux: un programme utilisateur peut-il conserver la mémoire après la fin?
Ma question est:
Sur un petit système Linux (64 Mo de RAM) en cours d'exécution d'un programme qui utilise la pile que la mémoire et quelques appels à malloc()
, ce qui cause que je peux regarder voir trop la mémoire en cours d'exécution vers le bas et rester en bas une fois mon programme se termine?
Une question connexe est here:
Tout cela a commencé quand après le code en question dirigeait son stdout, stderr dans un fichier. Après quelques heures, il a avorté avec une "erreur de segmentation". Un rapide (naïf?) Regarder/proc/meminfo a montré qu'il n'y avait pas beaucoup de mémoire disponible, donc j'ai supposé que quelque chose fuyait.
Pouvez-vous expliquer ce que vous voyez qui vous fait croire qu'un programme conserve la mémoire après la fin. Je devine que vous interprétez mal une autre situation. –
C'est aussi ce que je pense. On m'a récemment montré que la mémoire était mise en cache par la couche de blocs. – Jamie