Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
会发生什么?linux的输出或进程注册_Linux_Assembly_Cpu Registers - Fatal编程技术网

会发生什么?linux的输出或进程注册

会发生什么?linux的输出或进程注册,linux,assembly,cpu-registers,Linux,Assembly,Cpu Registers,如果您尝试进入(si)sysenter指令,会发生什么情况?为了回答这个问题,您需要了解si的工作原理 它怎么能工作?我可以想到两种方法: 调试器必须在下一个 指示,或 调试器修改处理器状态,使处理器执行一条指令并停止(也称为单步) 备选案文1。是复杂的,因为指令可能是一个间接跳转,例如调用(%eax),或RET,因此调试器可能会遇到很大的麻烦来理解下一条指令是什么 我熟悉的所有调试器都使用选项2 现在,您可能可以解释在sysenter(或syscall,或int80)指令上执行si时观察到的情

如果您尝试进入(si)sysenter指令,会发生什么情况?

为了回答这个问题,您需要了解
si
的工作原理

它怎么能工作?我可以想到两种方法:

  • 调试器必须在下一个 指示,或
  • 调试器修改处理器状态,使处理器执行一条指令并停止(也称为单步)
  • 备选案文1。是复杂的,因为指令可能是一个间接跳转,例如
    调用(%eax)
    ,或
    RET
    ,因此调试器可能会遇到很大的麻烦来理解下一条指令是什么

    我熟悉的所有调试器都使用选项2


    现在,您可能可以解释在
    sysenter
    (或
    syscall
    ,或
    int80
    )指令上执行
    si
    时观察到的情况。您需要知道的另一件事是,一旦
    sysenter
    切换到内核模式,内核就不可能允许单步模式(否则您的整个系统将冻结)。

    当我不知道该做什么时,您知道我在做什么。我试试看!:-)(很明显,这不是为了戳我的眼睛,或者邀请我妻子最好的朋友出去玩一段浪漫的插曲,但是一次进入操作系统不太可能像那样危险)lol mate读了我说我想不出来的问题,这显然意味着我在问一个问题之前已经试过了question@RohitPradeep当前位置到目前为止你试过什么?