By default, when using the -g switch, avr-gcc generates stabs debug
information. I think it would make more sense to test GDB against DWARF
information, because stabs is obsolete by now, and nobody work on it.
So change the simavr board to pass -gdwarf-4 as the debug flag.
The downside is that users are probably more likely to use just -g, so
we don't test GDB the same way as users are likely to use it. But in
this case, if somebody comes and asks for help with GDB for AVR, I
suggest we encourage them to use -gdwarf-4.
I can't give stats about how that changes test results, because the
testsuite is too broken. There is an internal error that happens quite
frequently that needs to be investigated:
/home/simark/src/wt/avr/gdb/trad-frame.h:143: internal-error: LONGEST trad_frame_saved_reg::addr() const: Assertion `m_kind == trad_frame_saved_reg_kind::ADDR' failed.
I sent a question on the gcc mailing list, asking why stabs is the
default:
https://gcc.gnu.org/pipermail/gcc/2021-April/235309.html
gdb/testsuite/ChangeLog:
* boards/simavr.exp: Set debug_flags.
Change-Id: I70e471fad3a79ab1d79d13dda8436bb9eb666e0a
+2021-04-16 Simon Marchi <simon.marchi@efficios.com>
+
+ * boards/simavr.exp: Set debug_flags.
+
2021-04-16 Luis Machado <luis.machado@linaro.org>
* gdb.dwarf2/dw2-bfloat16.exp: New file.
set_board_info cflags "-mmcu=${simavr_mcu}"
set_board_info ldflags "-mmcu=${simavr_mcu}"
+# As of version 10, GCC produces stabs by default for AVR. Force it to use
+# DWARF.
+set_board_info debug_flags "-gdwarf-4"
+
set_board_info use_gdb_stub 1
set_board_info gdb_protocol "remote"
set_board_info gdb,do_reload_on_run 1