是否可以从 ELF 核心文件中删除堆
Is it possible to remove the heap from an ELF Core file?
我正在通过/proc/sys/kernel/core_pattern
从非常大的核心转储中收集堆栈跟踪。以下问题建议使用 /proc/pid/core_filter
来减小大型核心转储的大小:
最小核心转储(仅堆栈跟踪 + 当前帧)
Linux 中的选择性核心转储 - 如何选择转储的部分?
是否可以获取仅包含调用堆栈、线程和局部变量的 Linux 核心转储?
但是,当将core_filter设置为"0"时,生成的核心转储对 gdb 的 bt 命令不再有意义。
所以,我有以下两部分的问题:
1) 除了 gdb 之外,是否有工具可以从这些最小的核心转储中提取堆栈跟踪?
2) 是否可以解析 ELF 核心文件以删除堆段?这个问题:堆栈和堆是什么以及在哪里?似乎表明这可能是可能的。
谢谢!
但是,当将core_filter设置为"0"时,生成的核心转储对 gdb 的 bt 命令不再有意义。
请注意,对于动态链接的二进制文件,GDB backtrace
需要了解堆栈跟踪中出现的所有共享库(以便找到相应的展开描述符)。
对于"普通"核心文件,此信息在堆中。从core
中删除堆会损坏info shared
,这反过来又会使具有任何共享库的backtrace
无法正常工作。
的,但通过删除堆使它成为必需的),则可以关闭位 0 和 1(匿名私有和共享映射,这将覆盖堆),并且仍然可以获得可用的核心。
相关文章:
- 如何在我从C++文件中读取后立即删除行
- 删除 XML 文件中的子节点C++
- 如何在输入新内容 c++ 之前删除文件中的所有内容
- 如何更新和删除文本文件中的特定逗号分隔值?C++
- 为什么我的程序在读取/写入文件时会删除最重要的数字?
- 将内容从第一个文件("constituencies")移动到第二个文件("temp")并在之后重命名时,我的文件被删除
- 文件模式标志"ios::app"是否用于删除文件(如果文件已存在)?
- 如何自动获取我的项目的路径并删除一些文件
- C++ VS 错误:<实验/文件系统>提供 std::experimental::文件系统的标头已被Microsoft弃用,将被删除
- 如果我删除指针,我的C++程序会意外删除系统文件吗?
- 在 c++ 中打开文件、删除标点符号并追加到另一个文件中
- 文件删除(使用取消链接)与释放所有磁盘空间之间的延迟
- 重命名批处理文件(删除名称中的一些符号)(python/matlab/shell)
- 如何找到字符串并使用C 文件中的文件删除它
- 使用 DEF 文件删除 dll 导出的名称
- 关闭后等待文件删除
- c++中的文件删除
- 如何共享文件删除权限时,我打开一个文件ifstream
- 典型的Win32文件删除(IDropTarget::drop)实现
- 生成文件模式规则:循环生成文件.o < - 删除生成文件依赖项