我们知道,linux通过虚拟内存管理进程的内存(进程的地址空间),而进程的地址空间分布如下 :

从进程的空间中可以看出,内存中的变量有的来自可执行elf文件,在elf文件中已经分配好存储空间,有的是在可执行文件运行过程中分配存储空间

区域 描述 变量类型
.text 代码段 程序代码
.rodata 只读数据段 只读变量和字符串常量
.data、.bss 全局数据段

.data存放:已经初始化的全局变量和局部静态变量;

.bss存放:未经初始化的全局变量和局部静态变量;

stack 栈区 局部变量
heap 堆区 malloc空间分配的变量

测试代码

    

  1 #include <stdio.h>                                                                                                                       |" Press <F1>, ? for help
2 #include <strings.h> |
3 #include <stdlib.h> |▼ variables
4 | global_init_var
5 int global_init_var = 0x84; | global_uninit_var
6 int global_uninit_var; | str
7 |
8 char str[] = "acdef"; |▼ functions
9 void func(int i) | func(int i)
10 { | main(void)
11 printf("%d\n",i); |~
12 } |~
13 |~
14 int main(void) |~
15 { |~
16 static int static_var = 0x85; |~
17 static int static_var2; |~
18 int a = 0x03; |~
19 int b; |~
20 func(static_var + static_var2 + a + b); |~
21 return a; |~
22 }

使用  gcc -c test.c (只编译不链接)

使用 objdump  -h test.o   查看目标文件的结构和内容

使用 objdump  -x -d -s test.o   查看目标文件中各个段和变量分布

最新文章

  1. MXNET安装过程中遇到libinfo导入不了的问题解决
  2. 你真的知道setTimeout是如何运行的吗
  3. yii2.0自动登录功能的实现方法
  4. WPF DataGrid 操作列 类似 LinkButton
  5. Genymotion开启就全部白屏解决方法
  6. UVa 10382 - Watering Grass
  7. php中memcache的运用
  8. java基础之类与对象
  9. 开发资源库(repositiory)
  10. Angular2+ 使用 Protractor 与 Modify Header Value (HTTP Headers) 插件 完成 Windows Authorization 验证
  11. Codeforces 160D Edges in MST tarjan找桥
  12. iOS笔记之UIKit_UISlider/UIStepper/UISwitch
  13. 2018 Multi-University Training Contest 5 Solution
  14. Jquery 批量操作标签属性
  15. (42)JS运动之多物体框架--多个div变宽
  16. 计算hashCode通用计算公式
  17. String中的方法
  18. Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)
  19. poj2482--Stars in Your Window(扫描线)
  20. 阿里云虚拟主机针对恶意频繁攻击式访问造成CPU爆满的解决方法

热门文章

  1. Hadoop的HA(ZooKeeper)安装与部署
  2. Spark记录(一):Spark全景概述
  3. k8s入坑之路(5)kube-apiserver详解
  4. SpringBoot目录文件结构总结(5)
  5. 大数据SQL中的Join谓词下推,真的那么难懂?
  6. LeetCode 78. 子集 C++(位运算和回溯法)
  7. 【数据结构&amp;算法】11-树基础&amp;二叉树遍历
  8. go输入Hello word
  9. ajax的post请求获取kfc官网数据
  10. node对象