You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.1 KiB
83 lines
3.1 KiB
commit afa840dcc021eaeb975dcde3bedbf46ea0511717 |
|
Author: Sergio Lopez <slp@redhat.com> |
|
Date: Mon Dec 4 09:17:12 2017 +0100 |
|
|
|
Implement 'set dump-excluded-mappings' command |
|
|
|
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 implements the 'set dump-excluded-mappings' 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. |
|
|
|
gdb/Changelog: |
|
2017-11-29 Sergio Lopez <slp@redhat.com> |
|
|
|
* linux-tdep.c (dump_excluded_mappings): New variable. |
|
(dump_mapping_p): Use dump_excluded_mappings variable. |
|
(_initialize_linux_tdep): New command 'set dump_excluded_mappings'. |
|
|
|
Index: gdb-7.6.1/gdb/linux-tdep.c |
|
=================================================================== |
|
--- gdb-7.6.1.orig/gdb/linux-tdep.c 2017-12-06 20:38:51.182203906 +0100 |
|
+++ gdb-7.6.1/gdb/linux-tdep.c 2017-12-06 20:39:12.708343183 +0100 |
|
@@ -88,6 +88,11 @@ |
|
|
|
static int use_coredump_filter = 1; |
|
|
|
+/* Whether the value of smaps_vmflags->exclude_coredump should be |
|
+ ignored, including mappings marked with the VM_DONTDUMP flag in |
|
+ the dump. */ |
|
+static int dump_excluded_mappings = 0; |
|
+ |
|
static struct gdbarch_data *linux_gdbarch_data_handle; |
|
|
|
struct linux_gdbarch_data |
|
@@ -512,7 +517,7 @@ |
|
return 0; |
|
|
|
/* Check if we should exclude this mapping. */ |
|
- if (v->exclude_coredump) |
|
+ if (!dump_excluded_mappings && v->exclude_coredump) |
|
return 0; |
|
|
|
/* Update our notion of whether this mapping is shared or |
|
@@ -1886,6 +1891,17 @@ |
|
" corefiles is %s.\n"), value); |
|
} |
|
|
|
+/* Display whether the gcore command is dumping mappings marked with |
|
+ the VM_DONTDUMP flag. */ |
|
+ |
|
+static void |
|
+show_dump_excluded_mappings (struct ui_file *file, int from_tty, |
|
+ struct cmd_list_element *c, const char *value) |
|
+{ |
|
+ fprintf_filtered (file, _("Dumping of mappings marked with the VM_DONTDUMP" |
|
+ " flag is %s.\n"), value); |
|
+} |
|
+ |
|
/* To be called from the various GDB_OSABI_LINUX handlers for the |
|
various GNU/Linux architectures and machine types. */ |
|
|
|
@@ -1921,4 +1937,16 @@ |
|
about this file, refer to the manpage of core(5)."), |
|
NULL, show_use_coredump_filter, |
|
&setlist, &showlist); |
|
+ |
|
+ add_setshow_boolean_cmd ("dump-excluded-mappings", class_files, |
|
+ &dump_excluded_mappings, _("\ |
|
+Set whether gcore should dump mappings marked with the VM_DONTDUMP flag."), |
|
+ _("\ |
|
+Show whether gcore should dump mappings marked with the VM_DONTDUMP flag."), |
|
+ _("\ |
|
+Use this command to set whether gcore should dump mappings marked with the\n\ |
|
+VM_DONTDUMP flag (\"dd\" in /proc/PID/smaps) when generating the corefile. For\n\ |
|
+more information about this file, refer to the manpage of proc(5) and core(5)."), |
|
+ NULL, show_dump_excluded_mappings, |
|
+ &setlist, &showlist); |
|
}
|
|
|