码迷,mamicode.com
首页 > 数据库 > 详细

20145234黄斐《信息安全系统设计基础》GDB调试汇编堆栈过程分析(1)

时间:2016-12-04 23:34:01      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:alt   padding   命令   ble   语言   跳转   编辑   rda   系统   

堆栈跟踪

首先编辑一个程序

技术分享

用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调试汇编堆栈过程分析(1)

标签:alt   padding   命令   ble   语言   跳转   编辑   rda   系统   

原文地址:http://www.cnblogs.com/taigenzhenjun/p/6132130.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!