Программирование Ядра Linux: “Не мог обработать Нулевого указателя ядра разыменовывают”

Проблема была решена в новейшей сборке.

Android Studio 3.3.2
Build #AI-182.5107.16.33.5314842, built on February 15, 2019

Получить андроид студию

5
задан Daniel Silveira 4 December 2008 в 17:25
поделиться

3 ответа

Походит на указатель, который в настоящее время имеет Нулевое значение (нуль), разыменовывается. Присвойте адрес указателю прежде, чем разыменовать его.

например.

int x = 5;
int * x_ptr = NULL;

x_ptr = &x; // this line may be missing in your code

*x_ptr += 5; //can't dereference x_ptr here if x_ptr is still NULL
6
ответ дан 18 December 2019 в 13:20
поделиться

Это значит ядро, которое попробовали для отсрочки нулевой указатель. Это генерирует отсутствие страницы, которое не может быть обработано в ядре - если оно выполняет пользовательскую задачу (но в пространстве ядра), оно обычно делает "ООП", который (грязно) уничтожает текущую задачу и может пропустить ресурсы ядра. Если это находится в некотором другом контексте, например, прерывании, это обычно вызывает панику ядра.

4
ответ дан 18 December 2019 в 13:20
поделиться

Ядро пытается читать из адреса 0, который Ваше ядро, по-видимому, рассматривает особенно (хорошая вещь!). Поскольку ядро не имеет никакого способа просто уничтожить себя как, мы знаем из приложений непривилегированного режима (они получили бы Отказ Сегментации), эта ошибка является фатальной. Это будет иметь, вероятно, panic'ed и отобразило то сообщение Вам.


http://en.wikipedia.org/wiki/Null_pointer#The_null_pointer

4
ответ дан 18 December 2019 в 13:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: