This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v2 00/19] Various DWARF piece fixes
- From: Andreas Arnez <arnez at linux dot vnet dot ibm dot com>
- To: gdb-patches at sourceware dot org
- Date: Tue, 9 May 2017 19:45:56 +0200
- Subject: [PATCH v2 00/19] Various DWARF piece fixes
- Authentication-results: sourceware.org; auth=none
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