【问题标题】:How to interpret memory map dump output?如何解释内存映射转储输出?
【发布时间】:2013-04-25 08:44:21
【问题描述】:

我的问题与错误本身无关(我知道是什么原因)。

相反,我想知道如何读取这个转储(字段、标志等的含义),它是在哪里产生的(glibc 或 gcc 库),以及如何从更高级别推断出什么问题(例如,一些可能会发现此输出有用的工具)。

*** glibc detected *** python: double free or corruption (fasttop): 0x0000000006c4eb90 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f6c3a0a1b96]
/usr/lib/nvidia-current-updates/tls/libnvidia-tls.so.304.88(+0x1cc1)[0x7f6c2e544cc1]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:07 2238049                          /build/bin/python
00600000-00601000 r--p 00000000 08:07 2238049                          /build/bin/python
00601000-00602000 rw-p 00001000 08:07 2238049                          /build/bin/python
00954000-07625000 rw-p 00000000 00:00 0                                  [heap]
40c14000-40c92000 rw-p 00000000 00:00 0 
7f6c04000000-7f6c041bc000 rw-p 00000000 00:00 0 
7f6c041bc000-7f6c08000000 ---p 00000000 00:00 0 
7f6c08000000-7f6c081bc000 rw-p 00000000 00:00 0 
7f6c081bc000-7f6c0c000000 ---p 00000000 00:00 0 
7f6c0c000000-7f6c0c1bc000 rw-p 00000000 00:00 0 
7f6c0c1bc000-7f6c10000000 ---p 00000000 00:00 0 
7f6c14000000-7f6c14021000 rw-p 00000000 00:00 0 
7f6c14021000-7f6c18000000 ---p 00000000 00:00 0 
7f6c1ab5a000-7f6c1ab5b000 ---p 00000000 00:00 0 
7f6c1ab5b000-7f6c1af5b000 rwxp 00000000 00:00 0 
7f6c1af5b000-7f6c1af5c000 ---p 00000000 00:00 0 
7f6c1af5c000-7f6c1b35c000 rwxp 00000000 00:00 0 
7f6c1b35c000-7f6c1b35d000 ---p 00000000 00:00 0 
7f6c1b35d000-7f6c1b75d000 rwxp 00000000 00:00 0 
7f6c1b75d000-7f6c1b767000 r-xp 00000000 08:05 1314563                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7f6c1b767000-7f6c1b967000 ---p 0000a000 08:05 1314563                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7f6c1b967000-7f6c1b968000 r--p 0000a000 08:05 1314563                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7f6c1b968000-7f6c1b969000 rw-p 0000b000 08:05 1314563                    /lib/x86_64-linux-gnu/libnss_nis-2.15.so
7f6c1b969000-7f6c1b980000 r-xp 00000000 08:05 1314576                    /lib/x86_64-linux-gnu/libnsl-2.15.so

【问题讨论】:

  • 它是通过检查给定进程的 /proc 文件系统 ( /proc/map ?) 生成的。您也可以从命令行执行此操作。 (我认为是cat /proc{pid}/smaps

标签: debugging gcc


【解决方案1】:

proc 的手册页有答案。内存映射输出格式在 /proc/[pid]/maps 的条目中给出。

简短的摘要跨越了它所在的列:内存范围、权限、偏移量、设备(主要:次要)、inode 和路径名。

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多