binutils-gdb/gdb/testsuite/gdb.trace
Pedro Alves a2a176c46b Fix pedantically invalid DWARF in gdb.trace/unavailable-dwarf-piece.exp
The DWARF spec says:

  Any debugging information entry representing the declaration of an object,
  module, subprogram or type may have DW_AT_decl_file, DW_AT_decl_line and
  DW_AT_decl_column attributes, each of whose value is an unsigned integer
							  ^^^^^^^^
  constant.

Grepping around the DWARF-assembler-based testcases, I noticed that
gdb.trace/unavailable-dwarf-piece.exp emits decl_line with
DW_FORM_sdata, a signed integer form.  This commit tweaks it to use
DW_FORM_udata instead.

Unsurprisingly, this:

  $ make check \
      TESTS="gdb.trace/unavailable-dwarf-piece.exp" \
      RUNTESTFLAGS="--target_board=native-gdbserver"

... still passes cleanly for me after this change.

I've noticed this because current llvm-dwarfdump crashed on an
ROCm-internal DWARF-assembler-based testcase that incorrectly used
signed forms for DW_AT_decl_file/DW_AT_decl_line.

The older llvm-dwarfdump found on Ubuntu 20.04 (LLVM 10) reads the
line numbers with signed forms as "0" instead of crashing.  Here's the
before/after fix for gdb.trace/unavailable-dwarf-piece.exp with that
llvm-dwarfdump version:

  $ diff -up before.txt after.txt
  --- before.txt    2022-07-07 13:21:28.387690334 +0100
  +++ after.txt     2022-07-07 13:21:39.379801092 +0100
  @@ -18,7 +18,7 @@
		   DW_AT_name     ("s")
		   DW_AT_byte_size        (3)
		   DW_AT_decl_file        (0)
  -                DW_AT_decl_line        (0)
  +                DW_AT_decl_line        (1)

   0x0000002f:     DW_TAG_member
		     DW_AT_name   ("a")
  @@ -41,7 +41,7 @@
		   DW_AT_name     ("t")
		   DW_AT_byte_size        (3)
		   DW_AT_decl_file        (0)
  -                DW_AT_decl_line        (0)
  +                DW_AT_decl_line        (1)

   0x00000054:     DW_TAG_member
		     DW_AT_name   ("a")

Change-Id: I5c866946356da421ff944019d0eca2607b2b738f
2022-07-07 13:27:39 +01:00
..
actions-changed.c
actions-changed.exp
actions.c
actions.exp
ax.exp
backtrace.exp
change-loc-1.c
change-loc-2.c
change-loc.c
change-loc.exp gdb/testsuite: remove unneeded calls to get_compiler_info 2022-06-24 15:07:29 +01:00
change-loc.h
circ.c
circ.exp
collection.c
collection.exp
deltrace.exp
disconnected-tracing.c
disconnected-tracing.exp
entry-values.c
entry-values.exp
ftrace-lock.c
ftrace-lock.exp
ftrace.c
ftrace.exp
infotrace.exp
mi-trace-frame-collected.exp
mi-trace-save.exp
mi-trace-unavailable.exp
mi-traceframe-changed.exp
mi-tracepoint-changed.exp
mi-tsv-changed.exp
no-attach-trace.c
no-attach-trace.exp
packetlen.exp
passc-dyn.exp
passcount.exp
pending.c
pending.exp
pendshr1.c
pendshr2.c
pr16508.exp
qtro.c
qtro.exp
range-stepping.c
range-stepping.exp
read-memory.c
read-memory.exp
report.exp
save-trace.exp
signal.c
signal.exp gdb/testsuite: resolve duplicate test name in gdb.trace/signal.exp 2022-05-31 09:23:32 +01:00
stap-trace.c
stap-trace.exp
status-stop.c
status-stop.exp
strace.c
strace.exp gdb/testsuite: remove unneeded calls to get_compiler_info 2022-06-24 15:07:29 +01:00
tfile.c
tfile.exp
tfind.exp
trace-break.c
trace-break.exp
trace-buffer-size.c
trace-buffer-size.exp
trace-common.h
trace-condition.c
trace-condition.exp
trace-enable-disable.c
trace-enable-disable.exp
trace-mt.c
trace-mt.exp
trace-unavailable.c
tracecmd.exp
tracefile-pseudo-reg.c
tracefile-pseudo-reg.exp
tspeed.c
tspeed.exp
tstatus.exp
tsv.exp
unavailable-dwarf-piece.c
unavailable-dwarf-piece.exp Fix pedantically invalid DWARF in gdb.trace/unavailable-dwarf-piece.exp 2022-07-07 13:27:39 +01:00
unavailable.cc
unavailable.exp
while-dyn.exp
while-stepping.exp