【发布时间】:2021-06-02 04:57:37
【问题描述】:
我一直在尝试配置我的服务(在 RHEL 7 上运行),这涉及使用 libasan 编译的程序,以便每当我的进程中止(由于无效读取或任何其他违规)时,都会生成核心转储。我已经在服务文件的环境变量中添加了相关的 ASAN 标志:
这是我的服务单元文件的样子:
[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
I've also followed the steps mentioned here relevant for RHEL 7
我还设置了ulimit -c unlimited。我已经在 .bashrc 文件中添加了这个。
我在下面添加更多信息(可能相关):
[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.5 (Maipo)
[root@localhost ~]# cat /proc/sys/kernel/core_pattern
/var/crash/core-%e.%p.%h.%t
尽管如此,当我的进程由于“未知地址上的 SEGV”而中止时,并没有生成核心文件。以前有人遇到过这样的问题吗?我还需要做什么?
【问题讨论】: