ASAN编译的RHEL7服务异常中止时未生成core转储文件
RHEL7环境下ASAN关联服务core转储配置问题
配置目标
为运行在RHEL 7上、关联libasan编译程序的服务配置core转储能力,确保进程因非法读取、其他内存违规操作异常中止时,能够正常生成core转储文件。
已完成的配置操作
- 在systemd服务单元文件中添加ASAN运行参数环境变量
- 按照RHEL 7官方coredump配置指引完成基础规则配置
- 执行
ulimit -c unlimited将core文件大小限制设为无上限,并将该配置写入对应用户的.bashrc文件做持久化
配置的systemd服务单元文件内容
[Unit] Description = PROXY STARTUP FILE After = syslog.target network.target [Service] Type = simple User = testProxy Group = testProxy Environment = "LD_LIBRARY_PATH=/home/test/lib" Environment = "ASAN_OPTIONS=disable_coredump=false:unmap_shadow_on_exit=true:abort_on_error=true" WorkingDirectory= /home/test ExecStart = /home/test/bin/proxy_2 ExecStop = /bin/kill -9 ExecStartPre = /home/test/service/pre_startup.sh ExecStopPost = /home/test/service/post_cleanup.sh StandardOutput = syslog StandardError = syslog SyslogIdentifier = p2 LimitCORE = infinity Restart = always [Install] WantedBy = multi-user.target
系统当前相关配置状态
# 系统版本信息 [root@localhost ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.5 (Maipo) # 内核core转储存储路径规则 [root@localhost ~]# cat /proc/sys/kernel/core_pattern /var/crash/core-%e.%p.%h.%t
实际故障现象
完成上述所有配置后,当进程因未知地址触发SEGV错误异常中止时,始终未生成预期的core文件,需要明确问题产生原因、补全缺失的配置步骤。
内容的提问来源于stack exchange,提问作者Vishal Sharma
相关产品推荐
相关产品推荐

