函数栈以及数据内存段
来源:互联网 发布:dw软件怎么使用 编辑:程序博客网 时间:2024/06/04 19:32
内存地址自下而上由低到高,数据和代码都从低地址存放,而函数压栈是从高地址压栈,后进来的地址低,先出
(gdb) list13#include<stdio.h>int global=0;int rect (int a,int b){ static int count=0; count++; global++; int s=a*b; return s;}14int quadrate(int a)15{1617 static int count=0;18 count++;19 global++;20 int s=rect(a,a);21 return s;22}(gdb) 232425int main()2627{2829 int a=3;30 int b=4;31 int *pa=&a;32 int *pb=&b;(gdb) 33 int *pglobal=&global;34 int (*pquadrate)(int a)=&quadrate;35 3637 int s=quadrate(a);38 printf("%d\n",s);3940}4142(gdb) startTemporary breakpoint 1 at 0x78f: file main.c, line 27.Starting program: /home/yd/workplace/pointer/les2/a.out Temporary breakpoint 1, main () at main.c:2727{(gdb) n //单条执行语句29 int a=3;(gdb) 30 int b=4;(gdb) 31 int *pa=&a;(gdb) 32 int *pb=&b;(gdb) 33 int *pglobal=&global;(gdb) 34 int (*pquadrate)(int a)=&quadrate;(gdb) 37 int s=quadrate(a);(gdb) s//单条执行语句,若遇到函数则进入函数内部quadrate (a=3) at main.c:1818 count++;(gdb) bt //查看栈#0 quadrate (a=3) at main.c:18#1 0x00005555555547dc in main () at main.c:37(gdb) n19 global++;(gdb) 20 int s=rect(a,a);(gdb) p &s$1 = (int *) 0x7fffffffddfc(gdb) s rect (a=3, b=3) at main.c:77 count++;(gdb) n8 global++;(gdb) 9 int s=a*b;(gdb) bt #0 rect (a=3, b=3) at main.c:9#1 0x000055555555477f in quadrate (a=3) at main.c:20#2 0x00005555555547dc in main () at main.c:37(gdb) p &s$2 = (int *) 0x7fffffffddd4(gdb) p &count$3 = (int *) 0x555555755018 <count>(gdb) f 1#1 0x000055555555477f in quadrate (a=3) at main.c:2020 int s=rect(a,a);(gdb) p &count$4 = (int *) 0x55555575501c <count>(gdb) p &global$5 = (int *) 0x555555755014 <global>(gdb) f 1#1 0x000055555555477f in quadrate (a=3) at main.c:2020 int s=rect(a,a);(gdb) p &global$6 = (int *) 0x555555755014 <global>(gdb)
阅读全文
0 0
- 函数栈以及数据内存段
- BSS段,数据段,代码段,堆内存和栈
- BSS段,数据段,代码段,堆内存和栈
- BSS段,数据段,代码段,堆内存和栈
- BSS段,数据段,代码段,堆内存和栈
- BSS段,数据段,代码段,堆内存和栈
- BSS段,数据段,代码段,堆内存和栈
- BSS段,数据段,代码段,堆内存和栈
- 内存段划分:代码段、数据段、堆、栈
- BSS段,数据段,代码段,堆内存和栈
- 内存布局【代码段、数据段、BSS段、堆、栈】
- 内存分配(堆、栈、BSS、代码段、数据段)
- linux下的程序内存分布 代码段,数据段,BSS段,.rodata段,堆,栈
- C++ 应用程序 内存结构 --- BSS段,数据段,代码段,堆内存和栈
- C++ 应用程序 内存结构 --- BSS段,数据段,代码段,堆内存和栈
- BSS段,数据段,代码段,堆内存和栈 (转)
- BSS段,数据段,代码段,堆内存和栈 (转)
- BSS段,数据段,代码段,堆内存和栈 研究
- linux下添加用户并赋予root权限
- jenkins部署安卓自动打包报错
- C++赋值语句讲解
- windows 下安装monogodb与设置自动备份批处理文件
- IDEA搭建SpringBoot+Maven+Mybatis+MySQL-Web项目流程
- 函数栈以及数据内存段
- 事务的4个特性及事务的隔离级别
- 常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
- 为工业而设计-浅析Predix UI的移动场景应用
- 基于Kerberos的NIFI集群安全登陆模式
- 神经网络基础概念
- Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
- Flume 以twitter为source,kafka为channel,hdfs为sink,再用spark streaming 读kafka topic
- 51nod 1277 字符串中的最大值【KMP算法】【next树】