У меня есть программа, которая работает на безголовой/встроенной Linux-системе, и при определенных обстоятельствах эта программа, похоже, использует немного больше памяти (как сообщается сверху и т. д.), чем я ожидал.
Поскольку состояние ошибки трудно воспроизвести вне реальной рабочей среды, и поскольку встроенный блок не имеет таких тонкостей, как valgrind или gdb, я хотел бы просто записать кучевую память процесса в файл , который я мог бы затем перенести на свою машину для разработки и просмотреть на досуге, чтобы увидеть, могу ли я сказать по содержимому файла, какие именно данные занимают большую часть кучи. Если мне повезет, может быть дымящийся пистолет, такой как повторяющаяся строка или магическое число, которое появляется много раз и указывает мне на место в моем коде, которое либо дает утечку, либо, возможно, просто безгранично увеличивает структуру данных.
Есть ли хороший способ сделать это? Единственный способ, который я могу придумать, - это принудительно завершить процесс, а затем собрать дамп ядра, но, поскольку состояние ошибки встречается редко, было бы предпочтительнее, если бы я мог собирать информацию без сбоя процесса как побочный эффект.