debugging - 如何解释内存映射转储输出?

标签 debugging gcc

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

我想知道如何读取此转储(字段、标志等的含义)、它是在哪里生成的(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/[pid]/maps 的条目中给出。

简短的摘要涵盖了以下各列:内存范围、权限、偏移量、设备(主要:次要)、inode 和路径名。

关于debugging - 如何解释内存映射转储输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16316677/

相关文章:

c++ - AVR - 中断 vector 和全局变量

c# - 为什么 Microsoft Visual C# 2008 Express Edition 调试器随机退出?

linux - 如何将参数从 makefile 传递到 Linux 内核模块源代码

c - 宏扩展 : Argument with Commas

linux - OpenCv 人脸检测示例卡住,没有任何错误或日志

c - OpenGL 项目存在 Codeblocks 编译问题

java - Eclipse java调试: source not found

javascript - 如何处理 onPress 函数 react

debugging - 没有工作台的 VxWorks 调试

c - 使用 GDB 单步调试多线程应用程序