程序计数器(PC)值/地址(如x86_64上%RIP中的值)可能由于某些原因而在内存中(不考虑.text段中的直接调用/跳转指令):
在内核中,
在AMD64 / i386 / ARM上,对于不同的操作系统,存储在内存中的PC地址除了函数入口指针(例如,函数指针)之外还有什么其他可能用途?
此外,这些地址是否有任何形式的编码?
例如,在跳转表中,在x86_64上,编译器可以使用32位偏移而不是64位完整地址。在glibc的setjmp / longjmp jmp_buf中,它们对保存的寄存器值使用特殊编码(PTR_MANGLE)。