20145234黄斐《信息安全系统设计基础》GDB调试汇编堆栈过程分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20145234黄斐《信息安全系统设计基础》GDB调试汇编堆栈过程分析相关的知识,希望对你有一定的参考价值。
堆栈跟踪
首先编辑一个程序
用gcc编译,再使用gdb调试,发现gdb尚未下载
下载后重新运行gdb
设置断点:b+行号或者“main”
运行:r
frame:打印出的信息:栈的层编号,当前的函数名,函数参数值,函数所在文件及行号,函数执行到的语句。
info frame:打印出的信息:函数地址,调用函数的地址,被调用函数的地址,目前的函数是由什么样的程序语言写成的、函数参数地址及值、局部变量的地址等等。
输入命令disassemble:显示出该代码(main())的汇编形式
info registers,显示当前(main()处)寄存器值
使用s单步运行程序
使用 up down ,跳转不同堆栈,查询其中的堆栈简要信息
该代码中,共存在过3个堆栈,对每个堆栈查询其详细信息,观察堆栈变化:
由main函数形成的堆栈(#2)
由f1函数形成的堆栈(#1):
由g1函数形成的堆栈(#0):
该代码中,共存在过3个堆栈,对每个堆栈查询其详细信息,观察堆栈变化:
以上是关于20145234黄斐《信息安全系统设计基础》GDB调试汇编堆栈过程分析的主要内容,如果未能解决你的问题,请参考以下文章