精华内容
下载资源
问答
  • Pmap 提供了进程内存映射,pmap命令用于显示一个或多个进程内存状态。其报告进程地址空间和内存状态信息。 作者:linux来源:Linux中国|2013-11-06 15:01 收藏 分享 Pmap 提供了进程内存映射,pmap...

     

    Pmap 提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。

    作者:linux来源:Linux中国|2013-11-06 15:01

    Pmap 提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。Pmap实际上是一个Sun OS上的命令,linux仅支持其有限的功能。但是它还是对查看完整的进程地址空间很有帮助。我们需要PID或者运行的进程的唯一进程ID来查看进程内存状态,我们可以通过/proc或者常规命令比如top或ps得到它。

    语法或用法

    #pmap PID 或者 #pmap [options] PID

    在输出中它显示全部的地址,kbytes,mode还有mapping。

    选项

    • -x extended显示扩展格式
    • -d device显示设备格式
    • -q quiet不显示header/footer行
    • -V 显示版本信息

    单一进程内存状态

    1. [root@info ~]# pmap 1013 
    2.  
    3.  
    4. 1013: /usr/sbin/sshd 
    5. 00110000 1480K r-x- /usr/lib/libcrypto.so.1.0.0 
    6. 00282000 80K rw-- /usr/lib/libcrypto.so.1.0.0 
    7. 00296000 12K rw-- [ anon ] 
    8. 00299000 36K r-x- /lib/libkrb5support.so.0.1 
    9. 002a2000 4K rw-- /lib/libkrb5support.so.0.1 
    10. 002a3000 16K r-x- /lib/libplc4.so 
    11. 002a7000 4K rw-- /lib/libplc4.so 
    12. 002ab000 88K r-x- /lib/libaudit.so.1.0.0 
    13. 002c1000 4K r-- /lib/libaudit.so.1.0.0 
    14. 002c2000 4K rw-- /lib/libaudit.so.1.0.0 
    15. 002c3000 216K r-x- /lib/libgssapi_krb5.so.2.2 
    16. 002f9000 4K rw-- /lib/libgssapi_krb5.so.2.2 
    17. 002fa000 808K r-x- /lib/libkrb5.so.3.3 
    18. 003c4000 24K rw-- /lib/libkrb5.so.3.3 
    19. 003ca000 152K r-x- /lib/libk5crypto.so.3.1 
    20. 003f0000 4K rw-- /lib/libk5crypto.so.3.1 
    21. 003f1000 92K r-x- /usr/lib/libnssutil3.so 
    22. 00738000 4K r--- /lib/libresolv-2.12.so 
    23. 00739000 4K rw-- /lib/libresolv-2.12.so 
    24. 0073a000 8K rw-- [ anon ] 
    25. 00825000 120K r-x- /lib/ld-2.12.so 
    26. 00843000 4K r--- /lib/ld-2.12.so 
    27. 00844000 4K rw-- /lib/ld-2.12.so 
    28. 0090d000 32K r-x- /lib/libwrap.so.0.7.6 
    29. 00915000 4K rw-- /lib/libwrap.so.0.7.6 
    30. 00948000 484K r-x- /usr/sbin/sshd 
    31. 009c1000 8K rw-- /usr/sbin/sshd 
    32. 009c3000 20K rw-- [ anon ] 
    33. 009e0000 92K r-x- /lib/libpthread-2.12.so 
    34. 009f7000 4K r--- /lib/libpthread-2.12.so 
    35.  
    36. total 8232K 

    多进程内存状态

    我们可以检查多进程内存通过插入多个PID。加入多个PID中间使用空格分隔。

    pmap 1013 1217 1118

    扩展进程内存

    1. [root@info ~]# pmap -x 1013 
    2. 1013: /usr/sbin/sshd 
    3. Address Kbytes RSS Dirty Mode Mapping 
    4. 00110000 1480 92 0 r-x- libcrypto.so.1.0.0 
    5. 00282000 80 80 80 rw-- libcrypto.so.1.0.0 
    6. 00296000 12 8 4 rw-- [ anon ] 
    7. 00299000 36 0 0 r-x- libkrb5support.so.0.1 
    8. 002a2000 4 4 4 rw-- libkrb5support.so.0.1 
    9. 002a3000 16 0 0 r-x- libplc4.so 
    10. 002a7000 4 4 4 rw-- libplc4.so 
    11. 002ab000 88 4 0 r-x- libaudit.so.1.0.0 
    12. 002c1000 4 4 4 r--- libaudit.so.1.0.0 
    13. 002c2000 4 4 4 rw-- libaudit.so.1.0.0 
    14. 002c3000 216 4 0 r-x- libgssapi_krb5.so.2.2 
    15. 002f9000 4 4 4 rw-- libgssapi_krb5.so.2.2 
    16. 002fa000 808 4 0 r-x- libkrb5.so.3.3 
    17. 003c4000 24 24 24 rw-- libkrb5.so.3.3 
    18. 003ca000 152 4 0 r-x- libk5crypto.so.3.1 
    19. 003f0000 4 4 4 rw-- libk5crypto.so.3.1 
    20. 003f1000 92 0 0 r-x- libnssutil3.so 
    21. 00408000 12 12 12 rw-- libnssutil3.so 
    22. 0040b000 12 0 0 r-x- libplds4.so 
    23. 0040e000 4 4 4 rw-- libplds4.so 
    24.  
    25. --- --- --- --- --- 
    26. total kB 8232 - - - 

    这里的Address,Kbyte,Dirty,RSS,mode还有mapping的说明如下

    扩展和设备格式区域

    • Address: 内存开始地址
    • Kbytes: 占用内存的字节数(KB)
    • RSS: 保留内存的字节数(KB)
    • Dirty: 脏页的字节数(包括共享和私有的)(KB)
    • Mode: 内存的权限:read、write、execute、shared、private (写时复制)
    • Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)
    • Offset: 文件偏移
    • Device: 设备名 (major:minor)

    转载于:https://www.cnblogs.com/sparkbj/p/6149412.html

    展开全文
  • Pmap 提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。...我们需要PID或者运行的进程的唯一进程ID来查看进程内存状态,我们可以通过/proc或者常规命令比如top或ps得到它。 ...

    Pmap 提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。Pmap实际上是一个Sun OS上的命令,linux仅支持其有限的功能。但是它还是对查看完整的进程地址空间很有帮助。我们需要PID或者运行的进程的唯一进程ID来查看进程内存状态,我们可以通过/proc或者常规命令比如top或ps得到它。

    语法或用法

    
    
    1. #pmap PID

    或者

    
    
    1. #pmap [options] PID

    在输出中它显示全部的地址,kbytes,mode还有mapping。

    选项

    • -x extended显示扩展格式
    • -d device显示设备格式
    • -q quiet不显示header/footer行
    • -V 显示版本信息

    单一进程内存状态

    
    
    1. [root@info ~]# pmap 1013
    2.  
    3.  
    4. 1013: /usr/sbin/sshd
    5. 00110000 1480K r-x- /usr/lib/libcrypto.so.1.0.0
    6. 00282000 80K rw-- /usr/lib/libcrypto.so.1.0.0
    7. 00296000 12K rw-- [ anon ]
    8. 00299000 36K r-x- /lib/libkrb5support.so.0.1
    9. 002a2000 4K rw-- /lib/libkrb5support.so.0.1
    10. 002a3000 16K r-x- /lib/libplc4.so
    11. 002a7000 4K rw-- /lib/libplc4.so
    12. 002ab000 88K r-x- /lib/libaudit.so.1.0.0
    13. 002c1000 4K r-- /lib/libaudit.so.1.0.0
    14. 002c2000 4K rw-- /lib/libaudit.so.1.0.0
    15. 002c3000 216K r-x- /lib/libgssapi_krb5.so.2.2
    16. 002f9000 4K rw-- /lib/libgssapi_krb5.so.2.2
    17. 002fa000 808K r-x- /lib/libkrb5.so.3.3
    18. 003c4000 24K rw-- /lib/libkrb5.so.3.3
    19. 003ca000 152K r-x- /lib/libk5crypto.so.3.1
    20. 003f0000 4K rw-- /lib/libk5crypto.so.3.1
    21. 003f1000 92K r-x- /usr/lib/libnssutil3.so
    22. 00738000 4K r--- /lib/libresolv-2.12.so
    23. 00739000 4K rw-- /lib/libresolv-2.12.so
    24. 0073a000 8K rw-- [ anon ]
    25. 00825000 120K r-x- /lib/ld-2.12.so
    26. 00843000 4K r--- /lib/ld-2.12.so
    27. 00844000 4K rw-- /lib/ld-2.12.so
    28. 0090d000 32K r-x- /lib/libwrap.so.0.7.6
    29. 00915000 4K rw-- /lib/libwrap.so.0.7.6
    30. 00948000 484K r-x- /usr/sbin/sshd
    31. 009c1000 8K rw-- /usr/sbin/sshd
    32. 009c3000 20K rw-- [ anon ]
    33. 009e0000 92K r-x- /lib/libpthread-2.12.so
    34. 009f7000 4K r--- /lib/libpthread-2.12.so
    35.  
    36. total 8232K

    多进程内存状态

    我们可以检查多进程内存通过插入多个PID。加入多个PID中间使用空格分隔。

    
    
    1. pmap 1013 1217 1118

    扩展进程内存

    
    
    1. [root@info ~]# pmap -x 1013
    2. 1013: /usr/sbin/sshd
    3. Address Kbytes RSS Dirty Mode Mapping
    4. 00110000 1480 92 0 r-x- libcrypto.so.1.0.0
    5. 00282000 80 80 80 rw-- libcrypto.so.1.0.0
    6. 00296000 12 8 4 rw-- [ anon ]
    7. 00299000 36 0 0 r-x- libkrb5support.so.0.1
    8. 002a2000 4 4 4 rw-- libkrb5support.so.0.1
    9. 002a3000 16 0 0 r-x- libplc4.so
    10. 002a7000 4 4 4 rw-- libplc4.so
    11. 002ab000 88 4 0 r-x- libaudit.so.1.0.0
    12. 002c1000 4 4 4 r--- libaudit.so.1.0.0
    13. 002c2000 4 4 4 rw-- libaudit.so.1.0.0
    14. 002c3000 216 4 0 r-x- libgssapi_krb5.so.2.2
    15. 002f9000 4 4 4 rw-- libgssapi_krb5.so.2.2
    16. 002fa000 808 4 0 r-x- libkrb5.so.3.3
    17. 003c4000 24 24 24 rw-- libkrb5.so.3.3
    18. 003ca000 152 4 0 r-x- libk5crypto.so.3.1
    19. 003f0000 4 4 4 rw-- libk5crypto.so.3.1
    20. 003f1000 92 0 0 r-x- libnssutil3.so
    21. 00408000 12 12 12 rw-- libnssutil3.so
    22. 0040b000 12 0 0 r-x- libplds4.so
    23. 0040e000 4 4 4 rw-- libplds4.so
    24.  
    25. --- --- --- --- ---
    26. total kB 8232 - - -

    这里的Address,Kbyte,Dirty,RSS,mode还有mapping的说明如下

    扩展和设备格式区域

    • Address: 内存开始地址
    • Kbytes: 占用内存的字节数(KB)
    • RSS: 保留内存的字节数(KB)
    • Dirty: 脏页的字节数(包括共享和私有的)(KB)
    • Mode: 内存的权限:read、write、execute、shared、private (写时复制)
    • Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)
    • Offset: 文件偏移
    • Device: 设备名 (major:minor)

     原文发布时间为:2013-11-05

    本文来自云栖社区合作伙伴“Linux中国”

    展开全文
  • Linux 内核给每个进程都提供一个独立的虚拟地址空间,这个地址空间是连续的。(也就是虚拟内存) 2.虚拟地址空间的内部又被分为内核空间和用户空间。 32 位系统的内核空间占用 1G,位于最高处,剩下的 3G 是...

    一、内存映射

    1. 通常所说的内存容量,指的是物理内存。进程是不能直接访问物理内存的。

         Linux 内核给每个进程都提供一个独立的虚拟地址空间,这个地址空间是连续的。(也就是虚拟内存)

    2. 虚拟地址空间的内部又被分为内核空间和用户空间。

        

        32 位系统的内核空间占用 1G,位于最高处,剩下的 3G 是用户空间。

        进程在用户态时,只能访问用户空间内存;只有进入内核态后,才可以访问内核空间内存。

    3. 内存映射,其实就是将虚拟内存地址映射到物理内存地址。

        

    (1) 页表实际上存储在 CPU 的内存管理单元 MMU 中。

    (2) 不是所有的虚拟内存都会分配物理内存,当进程访问的虚拟地址在页表中查不到时,系统会产生一个缺页异常

    (3) 缺页异常时,需要进入内核空间分配物理内存,更新页表,再返回用户空间。

    (4) MMU规定了一个内存映射的最小单位,4K。 所以4K的数据可以集中在一个页面中,可以访问加速。

     

    二、虚拟内存空间分布

    1. 用户空间内存,其实又被分成了多个不同的段

    (1) 只读段,包括代码和常量等。

    (2) 数据段,包括全局变量等。

    (3) 堆,包括动态分配的内存。

    (4) 文件映射段,包括动态库共享内存等。

    (5) 栈,包括局部变量和函数调用的上下文等。

     

    三、内存分配与回收

    1. malloc() 是 C 标准库提供的内存分配函数,有两种实现方式,即 brk() 和 mmap()。

    (1) brk(): 小块内存(小于 128K)时使用。

                     释放后并不会立刻归还系统,而是被缓存起来,可以重复使用,提高内存访问效率。

    (2) mmap():大块内存(大于 128K)时使用。

                     在文件映射段位置,找一块空闲内存分配出去。

    2. 系统发现内存紧张时,会通过三种方式来回收内存:

    (1) 回收缓存

         使用 LRU(Least Recently Used)算法,回收最近使用最少的内存页面.

    (2) 回收不常访问的内存

         把不常用的内存通过交换分区(Swap)直接写到磁盘中,当进程访问这些内存时,再从磁盘读取这些数据到内存中.

    (3) 杀死进程

         通过 OOM(Out of Memory),直接杀掉占用大量内存的进程。

         OOM使用 oom_score 为每个进程的内存使用情况进行评分:

         一个进程消耗的内存越大,oom_score 就越大;

         一个进程运行占用的 CPU 越多,oom_score 就越小...

          oom_score 越大,越容易被 OOM 杀死。值范围[-17,15]

          防止被OOM杀死: echo -16 > /proc/$(pidof sshd)/oom_adj

     

    四、如何查看内存使用情况

    1. free命令:  (有些系统需要 free -a )

         

        total  :总内存大小;

        used :已使用内存的大小,包含了共享内存;

        free   :未使用内存的大小;

        shared : 共享内存的大小;

        buff/cache : 是缓存和缓冲区的大小;

        available :剩余可用内存的大小。

                          不仅包含未使用内存,还包括了可回收的缓存,所以一般会比未使用内存更大。

    2. top命令:  (查看具体的进程的使用内存状况)

     VIRT : 虚拟内存的大小。

     RES : 常驻内存的大小。 实际使用的物理内存大小,但不包括 Swap 和共享内存。

     SHR : 共享内存的大小。比如与其他进程共同使用的共享内存、加载的动态链接库以及程序的代码段等。

     %MEM:进程使用物理内存占系统总内存的百分比。

    (1) 虚拟内存并不会全部分配物理内存,虚拟内存都比常驻内存大得多。

    (2) 共享内存 SHR 并不一定是共享的,比方说,程序的代码段、非共享的动态链接库。所以计算时不能直接相加。

     

    展开全文
  • 对于Linux操作系统之上的程序而言,其运行的进程所使用的内存地址都是虚拟地址,是MMU经过映射后的地址,我们这里所谈及的内存也是虚拟内存,而不是物理内存。 如何得到进程在内存中的布局: 我们将编写好的程序经过...

    Unix/Linux进程在内存中的布局

    对于Linux操作系统之上的程序而言,其运行的进程所使用的内存地址都是虚拟地址,是MMU经过映射后的地址,我们这里所谈及的内存也是虚拟内存,而不是物理内存。

    如何得到进程在内存中的布局:

    我们将编写好的程序经过GCC编译得到一个可执行的文件,然后将其运行起来,通过查看进程的命令得到进程ID:
    ps -aux
    在得到进程ID之后,我们通过pmap命令来查看进程在内存中的布局:
    pmap -d 进程号
    下图是笔者的一个程序程序通过pmap得到的进程内存布局:

    以so结尾的是库文件,a.out的有两个,一个具可读可执行权限,也就是代码段,另一个具有可读可写的权限,也就是数据段,接下来的几段我们可能看不明白,但没关系,stack我们知道是栈。到此我们对进程在内存中的布局的分析还未成型,我们需要借助另外一个工具:readelf,一款查看elf文件信息的工具。
    命令行下,运行readelf:
    readelf -S a.out
    得到下面一幅图:

    这一次的信息量比上一次的大多了。看到了我们熟悉的.text,rodata,.data,.bss。下面是笔者抽象出来的进程在内存中的布局示意图,其中忽略了一些信息。

    高地址在上,低地址在下。如果读者分析过足够多的程序,你会发现,Linux用户进程的开始地址是0x08048000。下面我们对其中的一些段作简单的解释。

    栈(stack):

    栈,也叫堆栈(这个叫法说实话真不像一个程序员叫出来的),向下生长。数据结构中,我们学习过栈,这里的栈就是数据结构中学习的那种结构,LIFO(后进先出)。C语言要想顺利的运行必须要有栈,栈是存放临时变量、函数调用现场等的内存空间。C语言中定义的普通局部变量就在栈中分配内存。

    堆(heap):

    堆是程序运行时能够自由分配的一段内存空间,向上生长。正由于其非常自由,所以很多的程序安全问题发生于此。例如臭名昭著的“内存泄漏”,就会发生在这里。当你不断地向获取内存,而不释放,那么堆就会越来越小,最后无法完成分配的工作时,程序也将发生异常。C语言中,我们使用malloc,calloc,realloc函数来申请对内存,请记住,有借一定要有还(free)。

    数据段:

    数据段分为.bss段和.data段。未初始化的全局变量和静态局部变量存放于bss段。bss段会被初始化为0,这也正是全局变量和静态局部变量不初始化也会是0的原因。已经初始化的全局变量和静态局部变量存放于data段,这个初始值从程序文件中复制而来。

    代码段:

    代码段分为.rodata,.text和.init。const修饰的全局变量和一些字面值常量存放于rodata段,这段内存是只读的。text段存放的是程序指令。init段则用来给用户程序添加一些“初始化”的代码,包括环境变量的准备,命令行参数的组织和传递等,并将这部分数据之余栈底。
    展开全文
  • Linux采用分页机制管理内存,逻辑地址等于线性地址运行环境ubuntu32bit 1G内存在非root用户下运行该测试程序,可查看到init进程在0~3G地址空间中的使用情况(更详细映射关系将在后续文章中介绍) b74aa000-b74b5000...
  • linux查看内存

    2018-07-29 17:23:00
    虚拟内存,操作系统内核为了对进程地址空间进行管理(process address space management)而精心设计的一个逻辑意义上的内存空间概念。 内核会为系统中每一个进程维护一份相互独立的页映射表 物理内存,共享内存:...
  • 不论是管道还是消息队列,要传递的数据都要通过内核,而共享内存只需要在内存中开辟一部分空间,将该空间映射到共享它的进程地址空间。以后这些进程间通信就不再涉及到内核,也就是说进程不在执行进入内核的系统调...
  • 文章目录前言进程如何使用内存进程地址空间虚拟内存在内核中的实现系统上查看进程内存进程用来申请内存的函数共享内存实现进程间通讯64位系统地址空间从物理内存角度看内存内存页及虚拟内存到物理内存的映射物理内存...
  • 共享内存①为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间,这块就是共享内存区域 ②由于可以多个进程共享一段内存,因此也需要依靠某种同步机制(如互斥...
  • 如果多个进程都把该内存区域映射到自身的虚拟地址空间,则这些进程都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存进程间共享数据最快的一种方法,一个进程向共享内存区域写入了数据,共享这...
  • 两个不同进程A、B共享内存的意思是,同一块物理内存映射进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁...
  • 另外进程内存地址从0开始,是因为使用的是虚拟内存。所以存在虚拟内存到物理内存的映射。目前服务器一般都是64位的,32位的已经极少了,32为对内存有极大限制。后期文章会首发于本专栏,也会...
  • 查找内存泄漏问题,可以使用valgrind、malloc_stats和malloc_info 监控查看内存情况。 1、 Linux内存介绍 ... 2、虚拟地址可通过每个进程上的页表(在每个进程的内核虚拟地址空间)与物理地址进行映射,...
  • 1.linux应用程序内存布局从低地址到高地址分别为:代码段、数据段、BSS段、堆、栈对向高内存地址生长,栈想低内存地址生长linux中...2.2.查看linux中应用程序内存布局方 法:通过查看应用程序进程中的进程地址映射文...
  • 解释:一旦这样的内存映射到共享它的进程地址空间,这些进程间的数据传递不在涉及到内核,换句话说进程不再通过执行进入内核的系统调用来传递彼此的数据。 查看创建的共享内存:ipcs -m 删除共享内存段:ipcrm -...
  • Linux共享内存

    2020-03-10 15:06:21
    把共享内存映射进程地址空间中 shdt(); 断开与共享内存的连接,非删除 shmctl(); 共享内存管理(删除,或改变状态) Linux操作共享内存相关命令 ipcs 查看消息队列,共享内存和信号量 ipcrm -m 32769 ...
  • linux进程概念探究

    2018-04-22 22:42:32
    MMU地址映射 进程的运行状态 PCB详解 进程标识符 查看进程状态的命令 环境变量和本地变量 内核的分类 程序和进程 程序:为完成一些任务的指令的有序集合 ​ 程序 = 代码 + 数据 ,size命令可以看到程序在...
  • 共享内存直接操作物理内存,不需要拷贝,它通过向内核申请一块内存映射进程自身的虚拟地址空间中 可以直接读写这个进程的空间,提高效率。 可以通过ipcs -m 命令查看共享内存的有关信息。 写操作: #...
  • 我们都听说过页映射,什么是页映射,操作系统为什么要以页映射方式将程序映射进程地址空间,这样做有什么好处?程序运行过程中发生页错误如何处理?什么是进程?从操作系统的角度来看,进程是如何被建立的?进程...
  • 查看进程内存占用情况查看进程的内存镜像信息 pmap -d pid ... mapped: 5252228K writeable/private: 5079956K shared: 24104K 关注最后一行输出结果, mapped:表示进程的映射的虚拟地址空间大小,即预分配虚拟内存...
  • 文章目录内存管理进程空间管理...查看进程内存空间的布局的命令:cat /proc/进程id/maps 分段机制的原理 分段机制下的虚拟地址由两部分组成,段选择子和段内偏移量。段选择子就保存在咱们前面讲过的段寄存器里面
  • 文章目录Linux内存是怎么工作的通过虚拟地址访问物理地址内存的分配与回收Linux的swap机制查看内存如何理解cache和buffer如何快准狠定位内存问题 Linux内存是怎么工作的 通过虚拟地址访问物理地址 首先我们8g的内存...
  • 2、为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间。进程就可以直接读写这一块内存而不需要进行数据的拷贝,从而大大提高效率。 3、由于多个进程共享一段...
  • 1.linux应用程序内存布局从低地址到高地址分别为:代码段,数据段,BSS段,堆,栈对向高内存地址生长,栈想低内存地址生长Linux的中...查看Linux中应用程序内存布局方法:通过查看应用程序进程中的进程地址映射...
  • linux system v 共享内存

    2019-10-02 07:02:58
    一、共享内存的实现方式: 1.System V的shmget(基本上所有...取得共享内存标识符后,要通过shmat将这 个内存映射到本进程的虚拟地址空间。) 2.posix的shm_open(缺点:通过ipcs查看不到,一些BSDs(OpenBSD a...

空空如也

空空如也

1 2 3 4
收藏数 74
精华内容 29
关键字:

linux查看进程内存地址映射

linux 订阅