How do I get a coredump file from an application?
Yuri
yuri at aetern.org
Mon Oct 4 09:00:42 UTC 2021
Odhiambo Washington wrote:
> Hi
>
> root at gw:/var/log/exim # freebsd-version -kru
> 13.0-RELEASE-p4
> 13.0-RELEASE-p4
> 13.0-RELEASE-p4
>
>
> I have my MTA (Exim) crushing, with the following message in its panic.log:
>
> 2021-10-01 04:10:58 SIGSEGV (maybe attempt to write to immutable memory)
> 2021-10-01 04:11:26 SIGSEGV (maybe attempt to write to immutable memory)
> 2021-10-01 04:11:30 SIGSEGV (maybe attempt to write to immutable memory)
> 2021-10-01 04:11:35 SIGSEGV (maybe attempt to write to immutable memory)
>
> I need to obtain a coredump file from the crashing process for debugging
> purposes.
>
> I have manually compiled the application with the following option:
> CC=clang -ggdb
> CXX=clang++
> CPP=clang-cpp
Don't.
Use the following knob documented in ports(7) and (somewhat more
verbose) in /usr/ports/Mk/bsd.port.mk:
# WITH_DEBUG - If set, debugging flags are added to CFLAGS and the
# binaries don't get stripped by INSTALL_PROGRAM or
# INSTALL_LIB. Besides, individual ports might
# add their specific to produce binaries for debugging
# purposes. You can override the debug flags that are
# passed to the compiler by setting DEBUG_FLAGS. It is
# set to "-g" at default.
> With the hopes that the binary will then come with debugging symbols.
>
> Additionally, I have done the following:
>
> mkdir -p /var/coredumps
> chmod 1777 /var/coredumps
>
> Added the following to /etc/sysctl.conf:
>
> kern.corefile=/var/coredumps/%U/%N.core
> kern.coredump=1
>
> And finally:
>
> sysctl -w kern.coredump=1
> sysctl -w kern.corefile=/var/coredumps/%U/%N.core
> sysctl -w kern.sugid_coredump=1 (this actually seems to be the default)
>
> Is this all that I need to do or am I missing something crucial in this
> endeavor?
Never used exim so guessing - you likely need to tell exim to actually
dump the core.
More information about the freebsd-questions
mailing list