From nobody Sat Aug 5 23:18:46 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RJJRp4yb6z4TtVs; Sat, 5 Aug 2023 23:18:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RJJRp46Hzz3ZH4; Sat, 5 Aug 2023 23:18:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691277526; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5LUr6k6GcHoVxQqu0FCHpmZKUeSh34uYLKOrd9Dkf+c=; b=jzJ1gPdUd9QSz90sECvvE9pcI+K70145g19bza3Y9vSV/DokHlojFyRDfUBiVeS8h0ArZ4 k6x0yVWkBYVJwaQeCEgTicfDUVTEqaoIuK946RzlehbwkbKJzmUHAVFNH2JOPalZqvMMHF gpUm0TQcnZ6L7X8n69WSf47arT0fqLL4ZWcn53bWZya9uli5wZhy/Tusjm0opGmN2elp9Y AdcVSeoKIW8C6RmtmNxor1gPz1WScESSv76mjwVwvona0MCQmq46ikVOa5iP6/LrFPLQAa h0/vfAlrNSqYF0d1eJk3sIkZmPJh0KzG1LrKz3YYuXDTXBQAoVrbkkb2Mv9PPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1691277526; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5LUr6k6GcHoVxQqu0FCHpmZKUeSh34uYLKOrd9Dkf+c=; b=pXco/nYNh77eY14tcINWqbJPcqV9TY0Ch4cw4bhQjpdqYEcJqs0BD8XAgYrPh2SaY65FuF lIhpCjtuPSY2cD7Kiga5Q5456gxNgKB9d311RGJzlcTLWMnujZuJL4j40vqx19owHjpzu6 FYCyq/xAXOH7txVHyWF4dF3/YN/6rsilZer8Z2Z8iKQxXeAbzxnkn+6oqfSFn/fs/TreNy XwkEhLg6Qq4lqWHazsNCJAhfSTsLxLdu5EKlHotwRSWHCrc105fDfjRWL2uetR0KZVir/h NhG8zb0WTWJAAwiotEm5+9XVXQwQKjNcyRcvR09Dhngmpqj4b60LqFUbbeEJZA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691277526; a=rsa-sha256; cv=none; b=ISU38RTXH8Iuyi/XbIaEB5RXIlg61wKbbUaTArOULfEeAgXpd3yTdBB59PjcpxKTUytEa1 vO58txxjcIS2gSOu56K3lLXtTaVKfirM03+OuuSGoZEqzw1kZQUUALL2NCJKDlQeFjdElw 7O5qJ18nJvW3B8JNQTzgxXdtN7c7+SSol3NWNYgHPNRcynRpk86pXBKOj1r4lK2jH3iGce sj8hiw6trHWyHD78Kbefu/hfQ4lI0Z7KdJi/1l1afXjb2b8TzHx905YEdsfmSyKFthK5qA JBVTeqKgMpMK1UXN/wSry4HHIK2DXbrAOD5EIRxxfX+Z2etIeRybrFbQ12G/0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RJJRp35GyznRT; Sat, 5 Aug 2023 23:18:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 375NIkcG010295; Sat, 5 Aug 2023 23:18:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 375NIkEg010294; Sat, 5 Aug 2023 23:18:46 GMT (envelope-from git) Date: Sat, 5 Aug 2023 23:18:46 GMT Message-Id: <202308052318.375NIkEg010294@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 6edbe5616c76 - main - Provide some more information for userland core dumps List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6edbe5616c761bff9e570d9c77db0644a9487174 Auto-Submitted: auto-generated The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=6edbe5616c761bff9e570d9c77db0644a9487174 commit 6edbe5616c761bff9e570d9c77db0644a9487174 Author: Ed Maste AuthorDate: 2017-10-27 14:26:03 +0000 Commit: Ed Maste CommitDate: 2023-08-05 23:18:35 +0000 Provide some more information for userland core dumps Previously the log message indicated only "(core dumped)" if a core was successfully created, or nothing if it was not. This provides insufficient information to faciliate debugging. Dtrace is no help as coredump() is static and we cannot find the return value via fbt. Expand the log message to include error return value information. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39942 --- sys/kern/kern_sig.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 5876e2e93920..df3ebc0103c4 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -3598,6 +3598,8 @@ void sigexit(struct thread *td, int sig) { struct proc *p = td->td_proc; + const char *coreinfo; + int rv; PROC_LOCK_ASSERT(p, MA_OWNED); proc_set_p2_wexit(p); @@ -3622,16 +3624,31 @@ sigexit(struct thread *td, int sig) * XXX : Todo, as well as euid, write out ruid too * Note that coredump() drops proc lock. */ - if (coredump(td) == 0) + rv = coredump(td); + switch (rv) { + case 0: sig |= WCOREFLAG; + coreinfo = " (core dumped)"; + break; + case EFAULT: + coreinfo = " (no core dump - bad address)"; + break; + case EINVAL: + coreinfo = " (no core dump - invalid argument)"; + break; + case EFBIG: + coreinfo = " (no core dump - too large)"; + break; + default: + coreinfo = " (no core dump - other error)"; + } if (kern_logsigexit) log(LOG_INFO, "pid %d (%s), jid %d, uid %d: exited on " "signal %d%s\n", p->p_pid, p->p_comm, p->p_ucred->cr_prison->pr_id, td->td_ucred->cr_uid, - sig &~ WCOREFLAG, - sig & WCOREFLAG ? " (core dumped)" : ""); + sig &~ WCOREFLAG, coreinfo); } else PROC_UNLOCK(p); exit1(td, 0, sig);