[PATCH v5 00/14] Fix BZ 25631 - core file memory access problem
Luis Machado
luis.machado@linaro.org
Wed Jul 22 22:40:18 GMT 2020
Hi,
I'm seeing the following regressions on AArch64 Linux running Ubuntu
18.04 (GCC 7).
FAIL: gdb.base/corefile.exp: backtrace in corefile.exp
FAIL: gdb.base/corefile.exp: core-file warning-free
FAIL: gdb.base/corefile.exp: print func2::coremaker_local
FAIL: gdb.base/corefile.exp: up in corefile.exp
FAIL: gdb.base/corefile.exp: up in corefile.exp (reinit)
On a quick look, the test doesn't go according to what is expected.
--
(gdb) PASS: gdb.base/corefile.exp: print coremaker_ro
print func2::coremaker_local^M
No frame is currently executing in block func2.^M
(gdb) FAIL: gdb.base/corefile.exp: print func2::coremaker_local
...
(gdb) PASS: gdb.base/corefile.exp: $_exitcode is void
bt^M
#0 0x0000ffff80d1c4d8 in raise () from /lib/aarch64-linux-gnu/libc.so.6^M
Backtrace stopped: previous frame identical to this frame (corrupt stack?)^M
(gdb) FAIL: gdb.base/corefile.exp: backtrace in corefile.exp
up^M
Initial frame selected; you cannot go up.^M
(gdb) FAIL: gdb.base/corefile.exp: up in corefile.exp
...
(gdb) file gdb/testsuite/outputs/gdb.base/corefile/corefile^M
Load new symbol table from
"gdb/testsuite/outputs/gdb.base/corefile/corefile"? (y or n) y^M
Reading symbols from gdb/testsuite/outputs/gdb.base/corefile/corefile...^M
(gdb) up^M
Initial frame selected; you cannot go up.^M
(gdb) FAIL: gdb.base/corefile.exp: up in corefile.exp (reinit)
--
On 7/21/20 9:58 PM, Kevin Buettner via Gdb-patches wrote:
> This series fixes several core file related bugs. The bug which
> started this work can be viewed here:
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=25631
>
> Other problems were found either during review or during development.
> I discuss these in my commit log remarks.
>
> This v5 series has only minor changes from v4. Unless noted
> otherwise, these changes all address Pedro's concerns:
>
> o Patch #5, Test ability to access unwritten-to mmap data in core file:
>
> - Add setup_xfail for non-Linux OSes. (I spotted this while testing
> on FreeBSD.)
>
> o Patch #8, Use NT_FILE note section for reading core target memory:
>
> - Formatting fixes.
> - Close bfd after failed bfd_check_format_check.
> - Fix SECNAME leak.
>
> o Patch #11, Adjust coredump-filter.exp to account for NT_FILE note handling:
>
> - Instead of XFAILing test, use Mihails Strasuns's suggestion
> instead.
>
> o Patch #12, Add new command "maint print core-file-backed-mappings":
>
> - Formatting fixes.
> - Don't crash GDB with gdb_assert().
> - Add comments (in both code and commit log) regarding utility
> of this new command.
>
> o Patch #14, New core file tests with mappings over existing program memory:
>
> - Formatting fixes.
> - Add another "maint print core-file-backed-mappings" test requested
> by Pedro in patch #12 review. This one makes sure that we don't
> crash GDB when NOT debugging a core file.
>
> I believe that all patches not listed above have been approved.
> Actually, I think that #5 is still approved too; I doubt that adding
> an XFAIL changes that.
>
> Kevin Buettner (14):
> Remove hack for GDB which sets the section size to 0
> Adjust corefile.exp test to show regression after bfd hack removal
> section_table_xfer_memory: Replace section name with callback
> predicate
> Provide access to non SEC_HAS_CONTENTS core file sections
> Test ability to access unwritten-to mmap data in core file
> Update binary_get_section_contents to seek using section's file
> position
> Add new gdbarch method, read_core_file_mappings
> Use NT_FILE note section for reading core target memory
> Add test for accessing read-only mmapped data in a core file
> gcore command: Place all file-backed mappings in NT_FILE note
> Adjust coredump-filter.exp to account for NT_FILE note handling
> Add new command "maint print core-file-backed-mappings"
> Add documentation for "maint print core-file-backed-mappings"
> New core file tests with mappings over existing program memory
>
> bfd/binary.c | 12 +-
> bfd/elf.c | 8 -
> gdb/NEWS | 4 +
> gdb/arch-utils.c | 16 ++
> gdb/arch-utils.h | 12 +
> gdb/bfd-target.c | 3 +-
> gdb/corelow.c | 264 ++++++++++++++++++++-
> gdb/doc/gdb.texinfo | 8 +
> gdb/exec.c | 8 +-
> gdb/exec.h | 13 +-
> gdb/gdbarch.c | 23 ++
> gdb/gdbarch.h | 6 +
> gdb/gdbarch.sh | 3 +
> gdb/linux-tdep.c | 244 +++++++++++++------
> gdb/target.c | 18 +-
> gdb/testsuite/gdb.base/coredump-filter.exp | 18 +-
> gdb/testsuite/gdb.base/corefile.exp | 27 ++-
> gdb/testsuite/gdb.base/corefile2.exp | 185 +++++++++++++++
> gdb/testsuite/gdb.base/coremaker.c | 30 ++-
> gdb/testsuite/gdb.base/coremaker2.c | 150 ++++++++++++
> 20 files changed, 942 insertions(+), 110 deletions(-)
> create mode 100644 gdb/testsuite/gdb.base/corefile2.exp
> create mode 100644 gdb/testsuite/gdb.base/coremaker2.c
>
More information about the Gdb-patches
mailing list