• Linux下 gdb 调试打印进程内存信息


    以下面代码为例,打印进程的内存信息。代码如下:

    1. #include
    2. int main(void)
    3. {
    4. int i = 0;
    5. char data[100] = {0};
    6. for(i = 0; i < (sizeof(data)/sizeof(char)); i++)
    7. {
    8. data[i] = i;
    9. }
    10. return 0;
    11. }

    gdb 调试中,也可以打印进程的内存信息。命令如下:i proc mappings

    下面进行 gdb 调试,打印进程的内存信息。操作如下:

    首先,在程序某一行打断点。

    其次,输入 r 命令运行程序。

    最后,输入 i proc mappings 命令打印进程的内存信息。如下所示:

    (gdb) i proc mappings
    process 4261
    Mapped address spaces:

              Start Addr           End Addr       Size     Offset objfile
          0x555555554000     0x555555555000     0x1000        0x0 /home/wangtian/Code_Learns/C_Learns/debug/debug2/main.out
          0x555555555000     0x555555556000     0x1000     0x1000 /home/wangtian/Code_Learns/C_Learns/debug/debug2/main.out
          0x555555556000     0x555555557000     0x1000     0x2000 /home/wangtian/Code_Learns/C_Learns/debug/debug2/main.out
          0x555555557000     0x555555558000     0x1000     0x2000 /home/wangtian/Code_Learns/C_Learns/debug/debug2/main.out
          0x555555558000     0x555555559000     0x1000     0x3000 /home/wangtian/Code_Learns/C_Learns/debug/debug2/main.out
          0x7ffff7dc3000     0x7ffff7de5000    0x22000        0x0 /usr/lib/x86_64-linux-gnu/libc-2.31.so
          0x7ffff7de5000     0x7ffff7f5d000   0x178000    0x22000 /usr/lib/x86_64-linux-gnu/libc-2.31.so
          0x7ffff7f5d000     0x7ffff7fab000    0x4e000   0x19a000 /usr/lib/x86_64-linux-gnu/libc-2.31.so

    可以看到,输出了进程的内存映射信息。

    也可显示更详细的进程内存信息命令为:i files 命令 或者  i target 命令

    包括引用的动态链接库等等。。。

    如下所示:

  • 相关阅读:
    无法解析插件 org.apache.maven.plugins:maven-clean-plugin:3.2.0 尝试使用 -U
    spring关于正确回滚异常的一些处理方案
    C++设计模式-单件(Singleton)
    PWM控制小灯泡明暗
    精通Java事务编程(5)-弱隔离级别之写倾斜与幻读
    高效备考2025年AMC8数学竞赛:2000-2024年AMC8真题练一练
    音视频转换器 Permute 3 for mac中文
    pandas 笔记: interpolate
    前后台同一个端口部署项目
    音视频开发是不是C++开发中最难的细分方向?
  • 原文地址:https://blog.csdn.net/wojiaxiaohuang2014/article/details/127651787