__attribute__((cleanup(int_free))) pomoże zapobiec wyciekowi gdy zbliża się death-line i nijak nie ma czasu na szukanie jakiegokolwiek rozwiązania:)
sporo ciekawych rzeczy można zrobić dzięki znajomości pliku nagłówkowego malloc(w c++ też się przyda nawet jeśli używasz new). Program może tak śledzić "stan samego siebie"
bardzo prosty przykład:
void dump(void)
{
struct mallinfo i = mallinfo();
printf("%d/%d\\n", i.uordblks, i.fordblks);
}
//po tych hasłach google coś wyszuka:
malloc_stats();
malloc_usable_size();
oczywiście do dyspozycji jest jeszcze gdb, które świadczy nieocenione usługi w wielu przypadkach.
a jeżeli chcesz sobie podglądnąć stan pamięci programu tak 4fun "bo ci się nudzi" to najwygodniej będzie htop, top lub cokolwiek innego tego typu.