测试代码

#include <stdio.h>int func1(int a) {return 2 * a;
}int func2(int a) {int c = 0;c = 2 * func1(a);return c;
}int func3(int a) {int c = 0;c = 2 * func2(a);return c;
}int main (int argc, char *argv[]) {printf("%d\n", func3(10));return 0;
}

测试过程

在调试时的程序暂停过程中,可以使用命令frame n来选择函数堆栈帧,其中n为层数

可以看到程序暂停后,最内层的函数帧为第0帧。
执行frame 2命令后,当前堆栈帧变成了func3的函数帧

可以使用i frame命令查看当前函数帧的相关信息
可以看到,func3要去调用func2,调用func3的地址是0x7fffffffdec0,
它要去调用地址为0x7fffffffdec0的函数func2
于是,如果你想通过函数帧地址切换到func2的函数堆栈帧
可以使用命令 frame 0x7fffffffdec0

gdb函数相关7——选择函数堆栈帧相关推荐

  1. Linux下函数调用堆栈帧的详细解释

    http://www.ibm.com/developerworks/cn/linux/l-overflow/ 本文首先向读者讲解了Linux下进程地址空间的布局以及进程堆栈帧的结构,然后在此基础上介绍 ...

  2. Linux下函数调用堆栈帧的详细解释【转】

    转自:http://blog.chinaunix.net/uid-30339363-id-5116170.html 原文地址: Linux下函数调用堆栈帧的详细解释 作者:cssjtuer http: ...

  3. PowerPC构架应用程序二进制接口(ABI)及堆栈帧详解

    第一部分 概述 应用程序二进制接口(ABI-Application Binary Interface)定义了一组在PowerPC系统软件上编译应用程序所需要遵循的一套规则.主要包括基本数据类型,通用寄 ...

  4. linux下gdb所有实用方法

    为什么80%的码农都做不了架构师?>>>    显示gdb版本信息 技巧 使用gdb时,如果想查看gdb版本信息,可以使用"show version"命令: 显示 ...

  5. 使用GDB(二):调试程序常用命令

    文章目录 一.GDB配置文件 二.启动程序/挂载进程 三.改变变量和控制流程 四.打印表达式(变量)信息 五.永久/条件/一次/自动断点操作 六.查看源码及其编译后的相关信息 七.反汇编相关 八.其它 ...

  6. linux下gdb单步调试

    用 GDB调试程序 GDB 概述 ---- GDB 是 GNU开源组织发布的一个强大的 UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像 VC. BCB等 IDE的调试,但如果你是在 ...

  7. GNU开发工具的使用方法

    GNU开发工具的使用方法 一.vi编辑器使用方法 1.1 vi编辑器 1.2 vi的基本命令 二.makefile的编写 2.1 makefile简介 2.2 make命令 2.3 隐含规则 三.gc ...

  8. C/C++中手动获取调用堆栈【转】

    转自:http://blog.csdn.net/kevinlynx/article/details/39269507 版权声明:本文为博主原创文章,未经博主允许不得转载. 当我们的程序core掉之后, ...

  9. Git/Ctags/Vim/GDB基础笔记

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

最新文章

  1. 用QQ提问的技巧,用了之后可以提高效率,呵呵。
  2. 数据流通实现“可用不可见”?腾讯巧夺“天工”
  3. mysql数据库优化课程---16、mysql慢查询和优化表空间
  4. Linux基础维护——笔记
  5. 贴片铝电容识别及型号_贴片钽电容封装及规格和参数资料
  6. 20172327 2017-2018-2 《程序设计与数据结构》第五周学习总结
  7. linux 脚本学习--细节问题
  8. 电磁波传播相位是否会变化_相位常数β与波数k是一回事吗?
  9. 用户自定义排序的几种实现思路
  10. 中位数(Median)
  11. jquery图表统计插件-highcharts详解
  12. 设计模式(1)——策略模式
  13. 11/27 记事本
  14. Linux-Discuz安装LAMP
  15. 翻译: 如何使用Xcode构建xcframework
  16. Dbgview - 签名无效
  17. XtraReport通过动态设置打印模板进行标签打印
  18. 【Web】多读书多看报
  19. 替换word中手动换行(软回车)为段落标记(硬回车)
  20. 基于SpringBoot的汽车租赁管理系统

热门文章

  1. 超越预期的精彩,2020深圳高博会开幕在即!
  2. ddr4 dqs 频率_DDR4各种技术参数详解
  3. 数字地 模拟地 电源地 屏蔽地
  4. 更新被拒绝,因为远程仓库包含您本地尚不存在的提交
  5. Ubuntu 16.04解决双系统时间冲突问题
  6. NanoPi NEO小试牛刀(二)
  7. 华为手机鸿蒙系统有什么优点和缺点,有多少人愿意亲身体验鸿蒙系统?华为自研系统,有哪些优势?...
  8. div内嵌网页ajax,Div里面载入另一个页面的实现(取代框架)(AJax)(转)
  9. Python you-get 库的使用方法
  10. 史上最全Elasticsearch学习