0x7fffffffdb30:    0x00000000    0x00000000    0xf7ffe700    0x0000001a
0x7fffffffdb40:    0xffffdc98    0x00007fff    0xf7de1b1f    0x00007fff
0x7fffffffdb50:    0xffffdb70    0x00007fff    0x004005b7    0x00000000
0x7fffffffdb60:    0x00000000    0x00000000    0x00000000    0x0000001a  <-------funcb的栈帧[0x7ffffffdb60, 0x7fffffffdb80], 其中a=0x1a 
0x7fffffffdb70:    0xffffdb90    0x00007fff    0x004005d3    0x00000000                    另外0x4005d3是函数调用者返回值ip 
0x7fffffffdb80:    0x00400470    0x00000000    0xffffdd90    0x00000019     <------funca的栈帧[0x7fffffffdb80,0x7fffffffdba0],其中a=0x19
0x7fffffffdb90:    0xffffdbc0    0x00007fff    0x00400601    0x00000000                     另外0x400601是函数调用这的返回值ip
0x7fffffffdba0:    0x00000000    0x00000000    0x00000028    0x00000018  <------add的栈帧[0x7ffffffdba0,0x7fffffffdbd0],其中a=0x18
0x7fffffffdbb0:    0x00000001    0x00000000    0x00000040    0x00000000
0x7fffffffdbc0:    0xffffdca0    0x00007fff    0x0040068e    0x00000000
0x7fffffffdbd0:    0xffffdd60    0x00007fff    0xf7dee923    0x00000002
0x7fffffffdbe0:    0x00000000    0x00000017    0x00000027    0x00000000
0x7fffffffdbf0:    0x00000000    0x00000000    0x00000003    0x00000000
0x7fffffffdc00:    0xffffdda8    0x00007fff    0x00000000    0x00000000
0x7fffffffdc10:    0x00400740    0x00000000    0xf7de7ab0    0x00007fff

在gdb中的caller of frame表示的是调用这个栈帧的起始地址,rbp也都是在rsp的上面

(gdb) info frame 1
Stack frame at 0x7fffffffdb80: 【栈的基地址】
 rip = 0x4005b7 in funcb (sleep.c:15); saved rip = 0x4005d3
 called by frame at 0x7fffffffdba0, caller of frame at 0x7fffffffdb60
 source language c.
 Arglist at 0x7fffffffdb70, args: a=26
 Locals at 0x7fffffffdb70, Previous frame's sp is 0x7fffffffdb80
 Saved registers:
  rbp at 0x7fffffffdb70, rip at 0x7fffffffdb78
 从gdb上没看出有没有ebp指针,没啥不同的!

使用gdb查看栈帧的情况,有ebp的更多相关文章

  1. 使用gdb查看栈帧的情况, 没有ebp

    0x7fffffffdb58: 0x004005ba  0x00000000  0x00000000  0x00000000 <-----funcb的栈帧 [0x7fffffffdb60, 0x ...

  2. 【Linux】GDB查看栈信息(转)

    在调试程序的过程中,查看程序的函数调用堆栈是一项最基本的任务,几乎所有的图形调试器都支持这项特性. GDB调试器当然也支持这一特性,但是功能更加灵活和丰富. GDB将当前函数的栈帧编号为0,为外层函数 ...

  3. X86-64寄存器和栈帧--牛掰降解汇编函数寄存器相关操作

    X86-64寄存器和栈帧 概要 说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64:正是由于能向后兼容,AM ...

  4. X86-64寄存器和栈帧

    简介 通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果.除此之外,它们还各自具有一些特殊功能.通用寄存器的长度取决于机器字长,汇编语言程序员必须熟悉每个寄存器的一般用途和特殊用途, ...

  5. Linux 如何使用gdb 查看core堆栈信息

    转载:http://blog.csdn.net/mergerly/article/details/41994207 core dump 一般是在segmentation fault(段错误)的情况下产 ...

  6. Linux下追踪函数调用,打印栈帧

    事情的起因是这样的,之前同事的代码有一个内存池出现了没有回收的情况.也就是是Pop出来的对象没有Push回去,情况很难复现,所以在Pop里的打印日志,跟踪是谁调用了它,我想在GDB调试里可以追踪调用的 ...

  7. GDB查看堆栈局部变量

    GDB查看堆栈局部变量 “参数从右到左入栈”,“局部变量在栈上分配空间”,听的耳朵都起茧子了.最近做项目涉及C和汇编互相调用,写代码的时候才发现没真正弄明白.自己写了个最简单的函数,用gdb跟踪了调用 ...

  8. Windows x64 栈帧结构

    0x01 前言 Windows 64位下函数调用约定变为了快速调用约定,前4个参数采用rcx.rdx.r8.r9传递,多余的参数从右向左依次使用堆栈传递.本次文章是对于Windows 64位下函数调用 ...

  9. 2.Jvm 虚拟机栈和栈帧

    Jvm 虚拟机栈和栈帧 1.栈帧(frames) 官网描述 A frame is used to store data and partial results, as well as to perfo ...

随机推荐

  1. C语言自问自答

    Windows系统下,最好如何配置环境? notepad++,tdm-gcc,powershell来进行! scanf函数的返回值,和不符合格式如何返回? #include<stdio.h> ...

  2. 006---Linux用户、群组和权限

    用户.组.权限管理 用户管理 增 语法:useradd -c '添加用户1' user1 选项和参数: -c:用户的备注信息 -d:用户的家目录 -g:指定用户所属的用户组(gid) -s:指定用户登 ...

  3. vue.js使用axios

    使用axios的两种调用方式 1.安装axios $ cnpm install axios 2.在vue入口文件main.js中引入(推荐全局引入),或是在当前页面中引入(局部) import axi ...

  4. 优步UBER司机全国各地奖励政策汇总 (3月14日-3月20日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. 北京Uber优步司机奖励政策(2月20日~2月21日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. SpringBoot-07:SpringBoot整合PageHelper做多条件分页查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述如何在SpringBoot中整合PageHelper,如何实现带多个条件,以及PageInfo中的 ...

  7. IAR环境下编译CC2640入门开发

    1. 安装SDK包,之后导入AIR里面,编译报错 看样子似乎是xdc工具的路径配置不对,进入路径配置对话窗 开始配置 配置完之后,重新编译 Fatal Error[Pe1696]: cannot op ...

  8. SpringBoot学习:整合shiro(验证码功能和登录次数限制功能)

    项目下载地址:http://download.csdn.NET/detail/aqsunkai/9805821 (一)验证码 首先login.jsp里增加了获取验证码图片的标签: <body s ...

  9. ajax跨域请求php

    在众多站群中,不同功能的系统使用独立的一个域名,各系统之间存在相互调用的关系.使用js的XMLHttpRequest调用其他域名提示跨域权限不足.有些可能认为都同属于同一个顶级域名或者说域名一模一样怎 ...

  10. 基于Impala平台打造交互查询系统

    本文来自网易云社区 原创: 蒋鸿翔 DataFunTalk 本文根据网易大数据蒋鸿翔老师DataFun Talk--"大数据从底层处理到数据驱动业务"中分享的<基于Impal ...