8

In a common call trace, we can check RIP to know which code crashed.

but in some call traces, it shows Bad RIP value:

[ 86.414392] RIP: 0010: (null)
[ 86.415351] Code: Bad RIP value.

ex:

https://bugzilla.kernel.org/show_bug.cgi?id=202827

What does the Bad RIP value mean?

1 Answer 1

10

"RIP" is the 64-bit Instruction Pointer register of the CPU. Its value determines the address from which the CPU will fetch the next instruction to be executed.

(In the x86 architecture, the original 16-bit instruction pointer was (and still is) called IP; when the architecture was extended to 32-bit, the E prefix was added to register names to indicate 32-bit wide access, and with x86_64, the R prefix was added to indicate the full 64-bit access.)

"Bad RIP value" would mean the instruction pointer register points to an address that does not contain executable memory. This suggests errors like not properly initializing a pointer to a function before trying to use it, or perhaps overwriting a function's return address in stack, so the RET machine code instruction will end up trying to return to a wrong address.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .