From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 119423 invoked by alias); 28 Nov 2017 13:22:18 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 119397 invoked by uid 89); 28 Nov 2017 13:22:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,KB_WAM_FROM_NAME_SINGLEWORD,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=lopez, 936, Lopez, manpage X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 28 Nov 2017 13:22:16 +0000 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7AEABC0587FD for ; Tue, 28 Nov 2017 13:22:15 +0000 (UTC) Received: from dritchie.redhat.com (unknown [10.36.118.108]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8FA8C5C1A1; Tue, 28 Nov 2017 13:22:14 +0000 (UTC) From: Sergio Lopez To: gdb-patches@sourceware.org Cc: Sergio Lopez Subject: [PATCH 1/4] Implement 'set honor-dontdump-flag' command Date: Tue, 28 Nov 2017 13:22:00 -0000 Message-Id: <20171128132148.31802-2-slp@redhat.com> In-Reply-To: <20171128132148.31802-1-slp@redhat.com> References: <20171128132148.31802-1-slp@redhat.com> X-SW-Source: 2017-11/txt/msg00721.txt.bz2 Commit df8411da087dc05481926f4c4a82deabc5bc3859 implemented support for checking /proc/PID/coredump_filter, and also changed gcore behavior to unconditionally honor the VM_DONTDUMP flag, preventing sections marked as such for being dumped into the core file. This patch adds support for the 'set honor-dontdump-flag' command for instructing gdb to ignore the VM_DONTDUMP flag. Combined with 'set use-coredump-filter', this allows the user to restore the old behavior, dumping all sections (except the ones marked as IO) unconditionally. ChangeLog 2017-11-28 Sergio Lopez * linux-tdep.c (honor_dontdump_flag): New variable. (dump_mapping_p): Use honor_dontdump_flag variable. (_initialize_linux_tdep): New command 'set honor-dontdump-flag'. --- gdb/ChangeLog | 6 ++++++ gdb/linux-tdep.c | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ebb969998c..ce68fee776 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-11-28 Sergio Lopez + + * linux-tdep.c (honor_dontdump_flag): New variable. + (dump_mapping_p): Use honor_dontdump_flag variable. + (_initialize_linux_tdep): New command 'set honor-dontdump-flag'. + 2017-11-27 Tom Tromey * Makefile.in (REMOTE_OBS): Remove. diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c index 24237b8d39..5f4a1cdad1 100644 --- a/gdb/linux-tdep.c +++ b/gdb/linux-tdep.c @@ -93,6 +93,11 @@ struct smaps_vmflags static int use_coredump_filter = 1; +/* Whether to honor the VM_DONTDUMP flag in /proc/PID/smaps when + generating a corefile. */ + +static int honor_dontdump_flag = 1; + /* This enum represents the signals' numbers on a generic architecture running the Linux kernel. The definition of "generic" comes from the file , from the Linux kernel @@ -655,7 +660,7 @@ dump_mapping_p (filter_flags filterflags, const struct smaps_vmflags *v, return 0; /* Check if we should exclude this mapping. */ - if (v->exclude_coredump) + if (honor_dontdump_flag && v->exclude_coredump) return 0; /* Update our notion of whether this mapping is shared or @@ -2517,4 +2522,16 @@ of /proc/PID/coredump_filter when generating the corefile. For more information about this file, refer to the manpage of core(5)."), NULL, show_use_coredump_filter, &setlist, &showlist); + + add_setshow_boolean_cmd ("honor-dontdump-flag", class_files, + &honor_dontdump_flag, _("\ +Set whether gcore should honor the VM_DONTDUMP flag."), + _("\ +Show whether gcore should honor the VM_DONTDUMP flag."), + _("\ +Use this command to set whether gcore should honor the VM_DONTDUMP\n\ +flag from /proc/PID/smaps when generating the corefile. For more information\n\ +about this file, refer to the manpage of proc(5) and core(5)."), + NULL, show_use_coredump_filter, + &setlist, &showlist); } -- 2.14.3