美文网首页
进程的内存映像

进程的内存映像

作者: _结弦 | 来源:发表于2024-09-09 11:29 被阅读0次

代码

#include <stdio.h>
#define X 1024
int a = 1;
const int b = 1;
void main(){
  static int c = 3;
  int d = 4;
  int *p = (int*)malloc(sizeof(int)*10);
  a = b + c + d;
  for(int i = 0; i<10;i++){
    p[i] = X + i;
  }
  printf("hello\n");
}

只读代码数据区

注意, 这里是代码和数据区

a = b + c + d;
for(int i = 0; i<10;i++){
  p[i] = X + i;
}
printf("hello\n");

读写数据

这里存放的是全局变量

const int b = 1;
static int c = 3;

heap

malloc(sizeof(int*)*10);

共享库

比如printf的代码

用户栈

函数的局部变量, 函数调用信息

int d = 4;
int *p

注意

可能有的同学看到只读代码数据区和用户栈时比较迷糊, 为什么在栈中的p会在代码区找到, 这其实有一个符号引用, 代码块里的变量只是对实际变量的一个引用 , 知道真正运行代码的时候, 这个符号会被解析为一个地址指针, 这个指针指向的是栈中的地址

相关文章

  • 基于C++的通过内存映射实现进程间的数据交换

    VC++ 通过内存映射实现进程间的数据交换,创建内存映像对象,从内存映射对象读数据,将文件的视图映射到一个进程的地...

  • JVM jmap dump 分析dump文件 / 如何使用Ecl

    jhat简介 把本机的java内存映像导出到heap.dmp中,其中PID为java进程的ID号。 导出后的映像文...

  • JDK自带工具之jmap、jhat

    jmap:是JDK自带的内存映像工具。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射...

  • JVM堆内存分析-jmap

    1.查询某个进程堆内存映像文件情况举例(jmap [PID]): jmap 83573image.png 2.查询...

  • 2.4、进程映像

    在linux中,进程映像可以在/proc/$pid/map看到代码段、堆、共享库、栈等的地址范围 1、程序时报存在...

  • 进程管理(一)进程操作

    进程创建 、进程执行映像和加载、进程运行(进程调度)、进程间的互斥与同步、进程间通信、进程终止 1、进程创建 PC...

  • Android性能探索

    进程管理&内存管理 进程生命周期进程优先级:前台进程可见进程服务进程后台进程 (LRU Cache & 占用内存...

  • linux pmap命令

    查看进程123占用内存情况 查看进程123占用内存情况--详细 查看进程123占用内存情况--更详细

  • Windows强制结束进程

    一、查看&显示进程 二、结束进程 命令说明:1、/im 指定要终止的进程的映像名称。通配符 '*'可用来指定所有任...

  • 内存溢出 jmap

    如何导出内存映像文件 内存溢出自动导出 -XX:+HeapDumpOnOutOfMemoryError-XX:+H...

网友评论

      本文标题:进程的内存映像

      本文链接:https://www.haomeiwen.com/subject/bkcrljtx.html