diff options
author | Tom de Vries <tdevries@suse.de> | 2025-08-14 18:43:22 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2025-08-14 18:43:22 +0200 |
commit | 903ea49d4780084fe8e6aac38e326cf29281eb08 (patch) | |
tree | 180c7086ef0f9151d05c5365747aafb2424726b8 | |
parent | a1be365e22fd18c0bf3e063fc6e5a66db35cce34 (diff) | |
download | binutils-903ea49d4780084fe8e6aac38e326cf29281eb08.zip binutils-903ea49d4780084fe8e6aac38e326cf29281eb08.tar.gz binutils-903ea49d4780084fe8e6aac38e326cf29281eb08.tar.bz2 |
[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
-rw-r--r-- | gdb/ax-gdb.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c index 08f542c..57626ab 100644 --- a/gdb/ax-gdb.c +++ b/gdb/ax-gdb.c @@ -538,8 +538,7 @@ gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var) break; case LOC_CONST_BYTES: - internal_error (_("gen_var_ref: LOC_CONST_BYTES " - "symbols are not supported")); + error (_("gen_var_ref: LOC_CONST_BYTES symbols are not supported")); /* Variable at a fixed location in memory. Easy. */ case LOC_STATIC: |