我正在寻找一种方法来选择核心转储中包含的部分和内存区域。
我的应用程序的核心转储大小约为30GB,其中大部分是预分配的缓冲区,我甚至在调试时甚至不需要(以后可以调零)。但是,由于转储非常大,应用程序需要很长时间才能完成崩溃并开始恢复。
任何人都可以想出一种方法来预先选择哪些段将在核心转储中?
谢谢Linux中的选择性核心转储 - 如何选择转储的部分?
11
A
回答
16
按照core(5)
手册页,可以设置哪些映射写入核心文件:
由于内核2.6.23的Linux特定 的/ proc/PID/coredump_filter文件可以 用于控制将哪个内存段 写入到核心转储文件 中,该核心转储是 对于 对应的进程ID执行的进程。
该文件中的值是 内存映射类型的位掩码(请参见mmap(2))。 如果在掩码中设置了一个位,则会转储 类型的内存映射;否则他们是 不倾销。 具有以下含义在此文件中位:
bit 0 Dump anonymous private mappings. bit 1 Dump anonymous shared mappings. bit 2 Dump file-backed private mappings. bit 3 Dump file-backed shared mappings. bit 4 (since Linux 2.6.24) Dump ELF headers. bit 5 (since Linux 2.6.28) Dump private huge pages. bit 6 (since Linux 2.6.28) Dump shared huge pages.
默认情况下,下面的位被设置:0,1,4(如果 CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS 内核配置选项被激活),和5. 的此文件的值以十六进制显示。 (因此 默认值显示为33.) 内存映射I/O页(如帧缓冲区)永远不会转储,并且无论coredump_filter 值如何,始终都会转储虚拟DSO页。
...
这个文件如果内核是用 CONFIG_ELF_CORE配置选项内置仅供。
0
我不确定是否可以设置转储内存的哪一部分。含有终止
作为一个选项的时间进程的内存映像
从man 5 core
磁盘文件可以截断使用
setrlimit
有RLIMIT_CORE
参数核心文件。
相关问题
- 1. Linux核心转储vs堆转储?
- 2. Linux核心转储过大!
- 3. MySQL的转储选择
- 4. 分割错误(核心转储),linux,g ++
- 5. 核心转储?
- 6. 转储选择GPUView事件
- 7. Django选择性转储数据
- 8. 分析核心转储
- 9. Solaris核心转储分析
- 10. 如何分析核心转储
- 11. gnuplot:Aborted(核心转储)
- 12. linux中的C分割错误(核心转储)错误
- 13. C++的核心转储分段错误
- 14. 中止核心转储
- 15. 如何从停止的程序(Linux)的核心转储
- 16. 如何增加Linux核心转储匹配符号的概率?
- 17. UIControllers的选择性自转
- 18. Erlang:如何禁用“崩溃转储”和“核心转储”生成?
- 19. 分割故障(核心转储)错误
- 20. Genymotion:分段错误(核心转储)genymotion
- 21. 分割错误(核心转储)
- 22. 分割错误 - 核心转储
- 23. 分割故障核心(转储)
- 24. 分割错误(核心转储)错误
- 25. 使用gdb分析核心转储帧
- 26. 分割故障(核心转储)
- 27. phtread_kill()分段故障(核心转储)
- 28. 分段错误(故障核心转储)
- 29. C - 分段错误(核心转储)
- 30. ERROR “分割故障(核心转储)”
谢谢。正是我在找什么。 – 2011-01-31 05:28:46