【问题标题】:When does instruction pointer get zero while debugging?调试时指令指针何时变为零?
【发布时间】:2014-03-19 03:29:13
【问题描述】:

程序计数器或指令指针为零时可能出现的情况是什么?

【问题讨论】:

    标签: cpu-registers cpu-architecture processor program-counter


    【解决方案1】:

    我认为如果你有一个 NULL 函数指针可能会发生这种情况,因为根据编译器和指令集,你可能会触发跳转到 0。如果你使用虚函数并且 vtable 有一个NULL 条目。

    我还没有证实,只是猜测

    【讨论】:

    • 缓冲区溢出(特别是那些覆盖返回地址的溢出)可能导致返回地址为零,该地址变为零指令指针/程序计数器。我似乎记得(模糊地)某些系统在堆栈底部使用零返回地址来提供隐式退出(尝试在地址零处执行指令会产生异常,调用操作系统)。
    猜你喜欢
    • 2016-01-10
    • 1970-01-01
    • 2010-12-11
    • 2016-10-21
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多