美文网首页Visual Studio Code
Vscode汇编调试出栈入栈—Apple的学习笔记

Vscode汇编调试出栈入栈—Apple的学习笔记

作者: applecai | 来源:发表于2019-03-24 21:13 被阅读0次

    调试方法:主要看esp(当前栈指针)和ebp(栈基地址),没进入一个函数ebp会变动为当前函数的基地址。

    我是在win10用的vscode+MinGw环境。

    1.地址显示从小到大。从上到下(小->大),左到右(小->大)

    2. 进入中断后ebp地址中的内容保存的是上一个ebp的地址。栈是向低地址方向增长的,分布保存局部变量。进入中断前先保存入参和返回地址。

    3. 实例分析:

      Main->CalMin1->MyPrint。从main开始有2层调用关系。

    4. memory内容如下:

    当进入CalMin1的时候esp地址为0x61fed8,ebp为ed8(ed8保存的内容是进入中断前的old ebp 0x61ff18)。

    进入MyPrint时候的ebp为0x61fea8(此地址中的内容为进入MyPrint前的old ebp0x61fed8)

    同理可以分析从main进入CalMin1函数的情况。参数是0x10和0x20,返回地址是0x401465。

    CalMin1的汇编,可以看到从MyPrint返回地址为0x4015de。

    相关文章

      网友评论

        本文标题:Vscode汇编调试出栈入栈—Apple的学习笔记

        本文链接:https://www.haomeiwen.com/subject/kjspvqtx.html