This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH v2 00/19] Various DWARF piece fixes


This series fixes various issues with DWARF piece handling.
Specifically it almost rewrites the functions read_pieced_value and
write_pieced_value in multiple steps.  Test cases are added as well.

Version 1 is here:

  https://sourceware.org/ml/gdb-patches/2017-04/msg00177.html

Changes from version 1 include:

* Split up some patches further.

* Added two more fixes for memory pieces.

* Added a "merge" patch at the end.

* Introduced get_endianness convenience proc for test suite.

* Minor test case improvement.

* Comment- and some general readability improvements.


Andreas Arnez (19):
  Add test for modifiable DWARF locations
  write_pieced_value: Fix size capping logic
  PR gdb/21226: Take DWARF stack value pieces from LSB end
  Remove addr_size field from struct piece_closure
  gdb/testsuite: Add "get_endianness" convenience proc
  read/write_pieced_value: Respect value parent's offset
  write_pieced_value: Fix copy/paste error in size calculation
  write_pieced_value: Include transfer size in byte-wise check
  write_pieced_value: Fix buffer offset for memory pieces
  write_pieced_value: Transfer least significant bits into bit-field
  Add DWARF piece test cases for bit-field access
  read/write_pieced_value: Drop 'buffer_size' variable
  Fix handling of DWARF register pieces on big-endian targets
  read/write_pieced_value: Improve logic for buffer allocation
  Respect piece offset for DW_OP_bit_piece
  read/write_pieced_value: Remove unnecessary variable copies
  Fix bit-/byte-offset mismatch in parameter to read_value_memory
  write_pieced_value: Notify memory_changed observers
  read/write_pieced_value: Merge into one function

 gdb/dwarf2loc.c                                    | 472 ++++++++++-----------
 gdb/testsuite/gdb.arch/aarch64-fp.exp              |   9 +-
 gdb/testsuite/gdb.arch/altivec-regs.exp            |  12 +-
 gdb/testsuite/gdb.arch/e500-regs.exp               |  12 +-
 gdb/testsuite/gdb.arch/vsx-regs.exp                |  12 +-
 gdb/testsuite/gdb.base/dump.exp                    |   7 +-
 gdb/testsuite/gdb.base/funcargs.exp                |  12 +-
 gdb/testsuite/gdb.base/gnu_vector.exp              |   7 +-
 gdb/testsuite/gdb.dwarf2/formdata16.exp            |   9 +-
 gdb/testsuite/gdb.dwarf2/implptrpiece.exp          |  10 +-
 gdb/testsuite/gdb.dwarf2/nonvar-access.exp         |  31 +-
 gdb/testsuite/gdb.dwarf2/var-access.c              |  25 ++
 gdb/testsuite/gdb.dwarf2/var-access.exp            | 345 +++++++++++++++
 gdb/testsuite/gdb.python/py-inferior.exp           |  12 +-
 .../gdb.trace/unavailable-dwarf-piece.exp          |   8 +-
 gdb/testsuite/lib/gdb-utils.exp                    |   2 +-
 gdb/testsuite/lib/gdb.exp                          |  13 +
 gdb/valops.c                                       |   7 +-
 gdb/value.h                                        |   9 +-
 19 files changed, 660 insertions(+), 354 deletions(-)
 create mode 100644 gdb/testsuite/gdb.dwarf2/var-access.c
 create mode 100644 gdb/testsuite/gdb.dwarf2/var-access.exp

-- 
2.5.0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]