Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
В Intel, JMP, CALL и т. д. относятся к программному счетчику команды next .
Следующая инструкция в вашем случае была в 0x4003be
и 0x4003be + 0x2004a2 == 0x600860
Это синтаксис AT & amp; T для непрямого доступа JMP с режимом относительной адресации RIP.
Адрес перехода выбирается из ячейки памяти, которая указана относительно указатель инструкции: сначала вычислите 0x4003be + 0x2004a2 == 0x600860
, затем выберите адрес для перехода с места 0x600860
.
Возможны другие режимы адресации, например, таблица перехода может использовать jmpq *(%rdi, %rax, 8)
с базой таблицы в RDI и индексе в RAX.
RIP-относительная адресация для статических данных является обычным явлением. В этом случае он обращается к записи в GOT (Global Offset Table), настроенной динамической компоновкой.
Current address
+Value before (%rip)
+Current Instruction Size
. благодаря – RouteMapper 27 November 2013 в 21:23loaded
от 0x600860 (?). – Konrad Eisele 4 June 2018 в 05:48