如何获得x86-64段寄存器fs的值?

时间:2012-03-06 23:51:53

标签: c linux-kernel

我尝试使用getcontext()并使用REG_CSGSFS索引其uc_mcontext。但是,我得到了零值。这是对的吗?

1 个答案:

答案 0 :(得分:1)

fs可以在x86_64上使用两种可能的方式:作为在LDT中索引描述符的段寄存器(非零值),或者使用零描述符索引和(隐藏,由内核维护)基础在看到fs段前缀时使用的偏移量。

使用哪种模式取决于当前线程的线程描述符的位置(高或低地址)。