Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Опция 1 является моим фаворитом, потому что это является самым простым. Я добираюсь для запуска приложения нормальным способом без беспокойства о том, чтобы заставлять WinDbg установить правильный рабочий каталог, передать любые параметры командной строки, и т.д.
К счастью, я не столкнулся ни с какими случаями, где это не работало!
Я склонен использовать опцию 4 (-сервер), потому что это - единственное, которое не "появляется", когда Вы врываетесь в отладчик ядра достаточно долго для соединения TCP к тайм-ауту. Но это более сложно и не полностью удовлетворяет. Таким образом, я ищу "лучшие практики".