[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