linux 设置生成转储文件,设置生成路径

645 阅读1分钟

临时生效

  • 查看转储文件是否生成的命令ulimit -c
  • 编辑/etc/profile文件,允许生成core文件,编辑完后source
    ulimit -c unlimited  
    # 一 反馈如下,则是未设置,不生成 core 文件    
    0
    # 二 反馈如下则是允许生成 core 文件  
    unlimited
    
  • 使用如下命令,设置生成的目录,及文件命名格式
    echo "/[corefile path]/core-%e-%p-%t" > /proc/sys/kernel/core_pattern   
    # %e : 表示程序名添加到 core 文件中  
    # %p : 添加 pid 到 core 文件  
    # %t : 添加生成时间到 core 文件
    
  • 调试gdb filename corename
  • 命令bt查看调用堆栈

永久生效

sudo vim /etc/bash.bashrc   
#  追加  
ulimit -S -c unlimited >/dev/null 2>&1  
# 定义了core文件的路径,注意,这个文件路径一定要有读写的权限    
echo "/home/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern    
# 切换到root用户,准备source    
su root
source /etc/bash.bashrc