[gdb/testsuite] Fix gdb.base/condbreak-multi-context.exp on native-gdbserver

With test-case gdb.base/condbreak-multi-context.exp on target board
native-gdbserver, I run into:
...
(gdb) continue
Continuing.
gdb/ax-gdb.c:542: internal-error: gen_var_ref: \
  LOC_CONST_BYTES symbols are not supported
A problem internal to GDB has been detected,
further debugging may prove unreliable.
----- Backtrace -----
FAIL: $exp: start_before=true: scenario_1: run until A::func (GDB internal error)
Resyncing due to internal error.
0x64cfa9 gdb_internal_backtrace_1
	gdb/bt-utils.c:122
0x64d047 _Z22gdb_internal_backtracev
	gdb/bt-utils.c:175
0x10cfdf1 internal_vproblem
	gdb/utils.c:423
0x10d020b _Z15internal_verrorPKciS0_P13__va_list_tag
	gdb/utils.c:503
0x19a6b4e _Z18internal_error_locPKciS0_z
	gdbsupport/errors.cc:57
0x5b76f9 gen_var_ref
	gdb/ax-gdb.c:541
0x5b9565 gen_static_field
	gdb/ax-gdb.c:1460
0x5b91c9 gen_struct_ref_recursive
	gdb/ax-gdb.c:1357
0x5b93f8 gen_struct_ref
	gdb/ax-gdb.c:1427
0x5bba0d _Z17gen_expr_structopP10expression10exp_opcodePN4expr9operationEPKcP10agent_exprP9axs_value
	gdb/ax-gdb.c:2253
0x678d94 _ZN4expr22structop_ptr_operation14do_generate_axEP10expressionP10agent_exprP9axs_valueP4type
	gdb/expop.h:1089
0x5b9ab6 _ZN4expr9operation11generate_axEP10expressionP10agent_exprP9axs_valueP4type
	gdb/ax-gdb.c:1602
0x5bb905 _Z14gen_expr_binopP10expression10exp_opcodePN4expr9operationES4_P10agent_exprP9axs_value
	gdb/ax-gdb.c:2233
0x69815c _ZN4expr24usual_ax_binop_operationIL10exp_opcode14EXadL_Z13eval_op_equalP4typeP10expression6nosideS1_P5valueS8_EEE14do_generate_axES5_P10agent_exprP9axs_valueS3_
	gdb/expop.h:1291
0x5b9ab6 _ZN4expr9operation11generate_axEP10expressionP10agent_exprP9axs_valueP4type
	gdb/ax-gdb.c:1602
0x5bc034 _Z17gen_eval_for_exprmP10expression
	gdb/ax-gdb.c:2396
0x5f16b6 parse_cond_to_aexpr
	gdb/breakpoint.c:2582
0x5f18a5 build_target_condition_list
	gdb/breakpoint.c:2640
0x5f2698 insert_bp_location
	gdb/breakpoint.c:2970
0x5f3916 insert_breakpoint_locations
	gdb/breakpoint.c:3400
0x60c1dd update_global_location_list
	gdb/breakpoint.c:11771
0x5f3421 _Z18insert_breakpointsv
	gdb/breakpoint.c:3293
0xaa0972 keep_going_pass_signal
	gdb/infrun.c:9131
0xa91b23 proceed_resume_thread_checked
	gdb/infrun.c:3579
0xa92490 _Z7proceedm10gdb_signal
	gdb/infrun.c:3780
0xa72b9b _Z10continue_1i
	gdb/infcmd.c:639
0xa72e4b continue_command
	gdb/infcmd.c:730
0x6c01d1 do_simple_func
	gdb/cli/cli-decode.c:95
0x6c683a _Z8cmd_funcP16cmd_list_elementPKci
	gdb/cli/cli-decode.c:2827
0xff11a9 _Z15execute_commandPKci
	gdb/top.c:565
0x959e0a _Z15command_handlerPKc
	gdb/event-top.c:613
0x95a3e7 _Z20command_line_handlerOSt10unique_ptrIcN3gdb13xfree_deleterIcEEE
	gdb/event-top.c:849
0x102b645 tui_command_line_handler
	gdb/tui/tui-interp.c:101
0x959548 gdb_rl_callback_handler
	gdb/event-top.c:288
0x1186dfd rl_callback_read_char
	readline/readline/callback.c:302
0x95925a gdb_rl_callback_read_char_wrapper_sjlj
	gdb/event-top.c:197
0x95934a gdb_rl_callback_read_char_wrapper_noexcept
	gdb/event-top.c:240
0x9593c9 gdb_rl_callback_read_char_wrapper
	gdb/event-top.c:252
0x1071253 stdin_event_handler
	gdb/ui.c:154
0x19a7c80 handle_file_event
	gdbsupport/event-loop.cc:551
0x19a825b gdb_wait_for_event
	gdbsupport/event-loop.cc:672
0x19a711c _Z16gdb_do_one_eventi
	gdbsupport/event-loop.cc:263
0x6ce4e3 _ZN6interp12do_one_eventEi
	gdb/interps.h:87
0xb74717 start_event_loop
	gdb/main.c:402
0xb748b6 captured_command_loop
	gdb/main.c:467
0xb7638f captured_main
	gdb/main.c:1345
0xb76438 _Z8gdb_mainP18captured_main_args
	gdb/main.c:1364
0x41a411 main
	gdb/gdb.c:38
...

This reproduces with gcc 7, not with gcc 8 or later.

Fix this by throwing an error instead of asserting, getting us instead:
...
(gdb) continue^M
Continuing.^M
^M
Breakpoint 2.2, A::func (this=$hex) at condbreak-multi-context.cc:31^M
31        void func () {}^M
(gdb) PASS: $exp: start_before=true: scenario_1: run until A::func
...

Tested on x86_64-linux.

Approved-By: Simon Marchi <simon.marchi@efficios.com>

PR gdb/32012
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32012
1 file changed