Test ability to access unwritten-to mmap data in core file

gdb/testsuite/ChangeLog:

	PR corefiles/25631
	* gdb.base/corefile.exp (accessing anonymous, unwritten-to mmap data):
	New test.
	* gdb.base/coremaker.c (buf3): New global.
	(mmapdata): Add mmap call which uses MAP_ANONYMOUS and MAP_PRIVATE
	flags.
This commit is contained in:
Kevin Buettner 2020-03-04 17:42:43 -07:00
parent 2735d4218e
commit 94c265d790
3 changed files with 29 additions and 1 deletions

View File

@ -1,4 +1,13 @@
2020-07-20 Kevin Buettner <kevinb@redhat.com>
2020-07-22 Kevin Buettner <kevinb@redhat.com>
PR corefiles/25631
* gdb.base/corefile.exp (accessing anonymous, unwritten-to mmap data):
New test.
* gdb.base/coremaker.c (buf3): New global.
(mmapdata): Add mmap call which uses MAP_ANONYMOUS and MAP_PRIVATE
flags.
2020-07-22 Kevin Buettner <kevinb@redhat.com>
* gdb.base/coremaker.c (filler_ro): New global constant.

View File

@ -175,6 +175,15 @@ gdb_test_multiple "x/8bd buf2" "$test" {
}
}
# Test ability to read anonymous and, more importantly, unwritten-to
# mmap'd data.
if { ![istarget *-linux*] } {
setup_xfail "*-*-*"
}
gdb_test "x/wx buf3" "$hex:\[ \t\]+0x00000000" \
"accessing anonymous, unwritten-to mmap data"
# test reinit_frame_cache
gdb_load ${binfile}

View File

@ -38,6 +38,7 @@
char *buf1;
char *buf2;
char *buf3;
int coremaker_data = 1; /* In Data section */
int coremaker_bss; /* In BSS section */
@ -104,6 +105,15 @@ mmapdata ()
}
/* Touch buf2 so kernel writes it out into 'core'. */
buf2[0] = buf1[0];
/* Create yet another region which is allocated, but not written to. */
buf3 = mmap (NULL, MAPSIZE, PROT_READ | PROT_WRITE,
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
if (buf3 == (char *) -1)
{
perror ("mmap failed");
return;
}
}
void