Возможные причины сбоя malloc и будет ли ядро ​​полезно определять причину? - PullRequest
0 голосов
/ 10 мая 2019

Malloc время от времени вылетает из приложения и генерирует файл ядра.

Объем выделяемой памяти минимален. Можно ли предположить, что вызов malloc пытается выделить память, которая уже используется?

Если так, то вероятным виновником будет предыдущий malloc, в котором записанные в него данные были больше, чем выделенная сумма?

Пример: malloc 1: выделяет размер 1000, но программа записывает 1200.

malloc 2 делается для выделения еще 1000, и система пытается выделить место в конце предыдущего malloc (malloc 1), но затем система понимает, что память используется.

Это вызвало бы аварию? Если нет, то что еще было бы, если учесть, что память минимальна.

Будет ли полезен файл core? Если так, то как? Не могли бы вы пройти через регистры и сбросить данные в этой точке и надеяться, что тип видимых данных приведет вас к фрагменту кода, который ранее выполнял malloc для этого конкретного типа данных?

...