core文件特别大原因分析

一、问题

服务发生core了,发现产生的core文件达到了几百G,而一般发生的core,不应该这样大的,core文件包含程序所有的地址空间,包括代码、堆栈

产生这么大的文件,只能是哪分配空间的时候,分配的特别大

二、解决办法

通过全局搜索malloc关键字,发现有一处分配了100G空间,将这个改成512M之后,重新运行,产生的core文件,果然小了很多

三、参考

https://stackoverflow.com/questions/2762879/linux-core-dumps-are-too-large

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你想了解如何分析coredump文件coredump文件是在程序崩溃或异常终止时生成的,其中包含了程序在崩溃时的内存状态。这些文件对于调试和定位问题非常有用。要分析coredump文件,你可以按照以下步骤进行操作: 1. 确认操作系统和编译器版本:确保你使用的操作系统和编译器版本与生成coredump文件的程序相匹配。不同的操作系统和编译器可能有不同的调试工具和命令。 2. 安装调试工具:根据你的操作系统,安装相应的调试工具。例如,对于Linux系统,常用的调试工具包括GDB(GNU Debugger)和LLDB(LLVM Debugger)。 3. 使用调试工具打开coredump文件:使用所选的调试工具打开coredump文件。可以使用以下命令:`gdb <可执行文件路径> <coredump文件路径>`或`lldb <可执行文件路径> -c <coredump文件路径>`。 4. 分析崩溃信息:一旦你成功打开了coredump文件,调试工具会提供崩溃时的堆栈跟踪信息。这些信息可以告诉你程序崩溃的位置和可能的原因。 5. 查看变量和内存状态:使用调试工具的命令来查看变量的值和内存的状态。你可以使用命令如`print <变量名>`来打印变量的值,或使用`x/<长度><格式> <内存地址>`来查看特定内存地址的内容。 6. 调试和定位问题:通过逐步执行代码、设置断点、打印变量值等方法,来进一步调试和定位问题。这可能需要对调试工具的命令和功能有一定了解。 请注意,coredump文件可能包含敏感信息,因此在分析之前,请确保你对文件的使用有适当的权限和安全措施。此外,分析coredump文件可能需要一定的经验和技能,特别是对于复杂的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值