public inbox for gdb-prs@sourceware.org help / color / mirror / Atom feed
* [Bug exp/31231] New: [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed. @ 2024-01-11 10:29 vries at gcc dot gnu.org 2024-01-11 10:44 ` [Bug exp/31231] " vries at gcc dot gnu.org ` (5 more replies) 0 siblings, 6 replies; 7+ messages in thread From: vries at gcc dot gnu.org @ 2024-01-11 10:29 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=31231 Bug ID: 31231 Summary: [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed. Product: gdb Version: HEAD Status: NEW Severity: normal Priority: P2 Component: exp Assignee: unassigned at sourceware dot org Reporter: vries at gcc dot gnu.org Target Milestone: --- When running the gdb testsuite using trunk on powerpc64le-linux, power10, I run into: ... (gdb) PASS: gdb.base/store.exp: var float l; print old r, expecting -2 set variable l = 4^M /home/vries/gdb/src/gdb/frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed.^M A problem internal to GDB has been detected,^M further debugging may prove unreliable.^M ----- Backtrace -----^M FAIL: gdb.base/store.exp: var float l; setting l to 4 (GDB internal error) Resyncing due to internal error. 0x1029c1f3 gdb_internal_backtrace_1^M /home/vries/gdb/src/gdb/bt-utils.c:122^M 0x1029c363 _Z22gdb_internal_backtracev^M /home/vries/gdb/src/gdb/bt-utils.c:168^M 0x10df425b internal_vproblem^M /home/vries/gdb/src/gdb/utils.c:396^M 0x10df4797 _Z15internal_verrorPKciS0_Pc^M /home/vries/gdb/src/gdb/utils.c:476^M 0x1183664f _Z18internal_error_locPKciS0_z^M /home/vries/gdb/src/gdbsupport/errors.cc:58^M 0x10618ab7 _Z28get_next_frame_sentinel_okay14frame_info_ptr^M /home/vries/gdb/src/gdb/frame.c:2088^M 0x10b1f063 rs6000_value_to_register^M /home/vries/gdb/src/gdb/rs6000-tdep.c:2747^M 0x1015c237 _Z25gdbarch_value_to_registerP7gdbarch14frame_info_ptriP4typePKh^M /home/vries/gdb/src/gdb/gdbarch.c:2549^M 0x10e1b1cb _Z12value_assignP5valueS0_^M /home/vries/gdb/src/gdb/valops.c:1247^M 0x101fafef ???^M 0x105aee33 _ZN10expression8evaluateEP4type6noside^M /home/vries/gdb/src/gdb/eval.c:111^M 0x1095520f set_command^M /home/vries/gdb/src/gdb/printcmd.c:1477^M 0x10324c23 do_simple_func^M /home/vries/gdb/src/gdb/cli/cli-decode.c:95^M 0x1032bfb7 _Z8cmd_funcP16cmd_list_elementPKci^M /home/vries/gdb/src/gdb/cli/cli-decode.c:2735^M 0x10d05663 _Z15execute_commandPKci^M /home/vries/gdb/src/gdb/top.c:575^M 0x105c0083 _Z15command_handlerPKc^M /home/vries/gdb/src/gdb/event-top.c:566^M 0x105c0867 _Z20command_line_handlerOSt10unique_ptrIcN3gdb13xfree_deleterIcEEE^M /home/vries/gdb/src/gdb/event-top.c:802^M 0x10d4c083 tui_command_line_handler^M /home/vries/gdb/src/gdb/tui/tui-interp.c:104^M 0x105bf4d3 gdb_rl_callback_handler^M /home/vries/gdb/src/gdb/event-top.c:259^M 0x10ed2b2b rl_callback_read_char^M /home/vries/gdb/src/readline/readline/callback.c:290^M 0x105bf193 gdb_rl_callback_read_char_wrapper_noexcept^M /home/vries/gdb/src/gdb/event-top.c:195^M 0x105bf30b gdb_rl_callback_read_char_wrapper^M /home/vries/gdb/src/gdb/event-top.c:234^M 0x10d95f9b stdin_event_handler^M /home/vries/gdb/src/gdb/ui.c:155^M 0x11837d7f handle_file_event^M /home/vries/gdb/src/gdbsupport/event-loop.cc:573^M 0x118382f3 gdb_wait_for_event^M /home/vries/gdb/src/gdbsupport/event-loop.cc:694^M 0x11836d5b _Z16gdb_do_one_eventi^M /home/vries/gdb/src/gdbsupport/event-loop.cc:264^M 0x107f248b start_event_loop^M /home/vries/gdb/src/gdb/main.c:408^M 0x107f2703 captured_command_loop^M /home/vries/gdb/src/gdb/main.c:472^M 0x107f4aff captured_main^M /home/vries/gdb/src/gdb/main.c:1342^M 0x107f4c07 _Z8gdb_mainP18captured_main_args^M /home/vries/gdb/src/gdb/main.c:1361^M 0x1001c887 main^M /home/vries/gdb/src/gdb/gdb.c:39^M ... -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug exp/31231] [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed. 2024-01-11 10:29 [Bug exp/31231] New: [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed vries at gcc dot gnu.org @ 2024-01-11 10:44 ` vries at gcc dot gnu.org 2024-01-11 10:52 ` vries at gcc dot gnu.org ` (4 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: vries at gcc dot gnu.org @ 2024-01-11 10:44 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=31231 --- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> --- Minimal reproducer: ... $ cat gdb.in file /home/vries/gdb/build/gdb/testsuite/outputs/gdb.base/store/store b 110 run set variable l = 4 ... Backtrace at abort: ... (gdb) bt #0 0x00007ffff6eacb68 in __pthread_kill_implementation () from /lib64/glibc-hwcaps/power10/libc.so.6 #1 0x00007ffff6e4f2e0 in raise () from /lib64/glibc-hwcaps/power10/libc.so.6 #2 0x00007ffff6e2a834 in abort () from /lib64/glibc-hwcaps/power10/libc.so.6 #3 0x0000000010df3d20 in dump_core () at /home/vries/gdb/src/gdb/utils.c:198 #4 0x0000000010df4658 in internal_vproblem (problem=0x12a282b0 <internal_error_problem>, file=0x11925710 "/home/vries/gdb/src/gdb/frame.c", line=2088, fmt=0x11925680 "%s: Assertion `%s' failed.", ap=0x7fffffffd318 "0d\222\021") at /home/vries/gdb/src/gdb/utils.c:450 #5 0x0000000010df4798 in internal_verror (file=0x11925710 "/home/vries/gdb/src/gdb/frame.c", line=2088, fmt=0x11925680 "%s: Assertion `%s' failed.", ap=0x7fffffffd318 "0d\222\021") at /home/vries/gdb/src/gdb/utils.c:476 #6 0x0000000011836650 in internal_error_loc (file=0x11925710 "/home/vries/gdb/src/gdb/frame.c", line=2088, fmt=0x11925680 "%s: Assertion `%s' failed.") at /home/vries/gdb/src/gdbsupport/errors.cc:58 #7 0x0000000010618ab8 in get_next_frame_sentinel_okay (this_frame=...) at /home/vries/gdb/src/gdb/frame.c:2088 #8 0x0000000010b1f064 in rs6000_value_to_register (frame=..., regnum=63, type=0x130e8a70, from=0x132d1470 "") at /home/vries/gdb/src/gdb/rs6000-tdep.c:2747 #9 0x000000001015c238 in gdbarch_value_to_register (gdbarch=0x130d9ea0, frame=..., regnum=63, type=0x130e8a70, buf=0x132d1470 "") at /home/vries/gdb/src/gdb/gdbarch.c:2549 #10 0x0000000010e1b1cc in value_assign (toval=0x131c5aa0, fromval=0x132b56c0) at /home/vries/gdb/src/gdb/valops.c:1247 #11 0x00000000101faff0 in expr::assign_operation::evaluate (this=0x132d0340, expect_type=0x0, exp=0x132aad70, noside=EVAL_NORMAL) at /home/vries/gdb/src/gdb/expop.h:1911 #12 0x00000000105aee34 in expression::evaluate (this=0x132aad70, expect_type=0x0, noside=EVAL_NORMAL) at /home/vries/gdb/src/gdb/eval.c:111 #13 0x0000000010955210 in set_command (exp=0x130db57d "l = 4", from_tty=0) at /home/vries/gdb/src/gdb/printcmd.c:1477 #14 0x0000000010324c24 in do_simple_func (args=0x130db57d "l = 4", from_tty=0, c=0x12eea520) at /home/vries/gdb/src/gdb/cli/cli-decode.c:95 #15 0x000000001032bfb8 in cmd_func (cmd=0x12eea520, args=0x130db57d "l = 4", from_tty=0) at /home/vries/gdb/src/gdb/cli/cli-decode.c:2735 #16 0x0000000010d05664 in execute_command (p=0x130db581 "4", from_tty=0) at /home/vries/gdb/src/gdb/top.c:575 #17 0x00000000105c0084 in command_handler (command=0x130db570 "set variable l = 4") at /home/vries/gdb/src/gdb/event-top.c:566 #18 0x0000000010d0496c in read_command_file (stream=0x1308e980) at /home/vries/gdb/src/gdb/top.c:342 #19 0x00000000103436d0 in script_from_file (stream=0x1308e980, file=0x7ffffffff117 "gdb.in") at /home/vries/gdb/src/gdb/cli/cli-script.c:1642 #20 0x0000000010317848 in source_script_from_stream (stream=0x1308e980, file=0x7ffffffff117 "gdb.in", file_to_open=0x7fffffffe280 "gdb.in") at /home/vries/gdb/src/gdb/cli/cli-cmds.c:730 #21 0x0000000010317a18 in source_script_with_search (file=0x7ffffffff117 "gdb.in", from_tty=0, search_path=0) at /home/vries/gdb/src/gdb/cli/cli-cmds.c:775 #22 0x0000000010317ad8 in source_script (file=0x7ffffffff117 "gdb.in", from_tty=0) at /home/vries/gdb/src/gdb/cli/cli-cmds.c:784 #23 0x00000000107f2868 in catch_command_errors (command=0x10317a9c <source_script(char const*, int)>, arg=0x7ffffffff117 "gdb.in", from_tty=0, do_bp_actions=false) at /home/vries/gdb/src/gdb/main.c:514 #24 0x00000000107f2b84 in execute_cmdargs (cmdarg_vec=0x7fffffffe598, file_type=CMDARG_FILE, cmd_type=CMDARG_COMMAND, ret=0x7fffffffe5c8) at /home/vries/gdb/src/gdb/main.c:610 #25 0x00000000107f4870 in captured_main_1 (context=0x7fffffffe840) at /home/vries/gdb/src/gdb/main.c:1311 #26 0x00000000107f4afc in captured_main (data=0x7fffffffe840) at /home/vries/gdb/src/gdb/main.c:1332 #27 0x00000000107f4c08 in gdb_main (args=0x7fffffffe840) at /home/vries/gdb/src/gdb/main.c:1361 #28 0x000000001001c888 in main (argc=7, argv=0x7fffffffecb8) at /home/vries/gdb/src/gdb/gdb.c:39 (gdb) ... -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug exp/31231] [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed. 2024-01-11 10:29 [Bug exp/31231] New: [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed vries at gcc dot gnu.org 2024-01-11 10:44 ` [Bug exp/31231] " vries at gcc dot gnu.org @ 2024-01-11 10:52 ` vries at gcc dot gnu.org 2024-01-11 16:35 ` simark at simark dot ca ` (3 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: vries at gcc dot gnu.org @ 2024-01-11 10:52 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=31231 Tom de Vries <vries at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |simon.marchi at polymtl dot ca --- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> --- The assert reads as follows: ... /* Note that, due to the manner in which the sentinel frame is constructed, this_frame->next still works even when this_frame is the sentinel frame. But we disallow it here anyway because calling get_next_frame_sentinel_okay() on the sentinel frame is likely a coding error. */ if (this_frame->this_id.p == frame_id_status::COMPUTED) gdb_assert (!is_sentinel_frame_id (this_frame->this_id.value)); ... Possibly triggered by recent commit: ... commit 584468de6c4c305eac9e89801b82406a3fdb3c3b Author: Simon Marchi <simon.marchi@efficios.com> Date: Fri Dec 1 11:27:23 2023 -0500 gdb: make put_frame_register take the next frame ... which does: ... diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index cbbaf6d83a1..c43039302bc 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -2744,7 +2744,7 @@ rs6000_value_to_register (frame_info_ptr frame, struct type *to_type = builtin_type (gdbarch)->builtin_double; target_float_convert (from, type, to, to_type); auto to_view = gdb::make_array_view (to, to_type->length ()); - put_frame_register (frame, regnum, to_view); + put_frame_register (get_next_frame_sentinel_okay (frame), regnum, to_view); } ... -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug exp/31231] [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed. 2024-01-11 10:29 [Bug exp/31231] New: [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed vries at gcc dot gnu.org 2024-01-11 10:44 ` [Bug exp/31231] " vries at gcc dot gnu.org 2024-01-11 10:52 ` vries at gcc dot gnu.org @ 2024-01-11 16:35 ` simark at simark dot ca 2024-01-11 16:51 ` simark at simark dot ca ` (2 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: simark at simark dot ca @ 2024-01-11 16:35 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=31231 Simon Marchi <simark at simark dot ca> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |simark at simark dot ca --- Comment #3 from Simon Marchi <simark at simark dot ca> --- Thanks, reproduced. We are indeed passing the wrong frame somewhere. -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug exp/31231] [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed. 2024-01-11 10:29 [Bug exp/31231] New: [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed vries at gcc dot gnu.org ` (2 preceding siblings ...) 2024-01-11 16:35 ` simark at simark dot ca @ 2024-01-11 16:51 ` simark at simark dot ca 2024-01-11 18:12 ` cvs-commit at gcc dot gnu.org 2024-01-11 18:12 ` simark at simark dot ca 5 siblings, 0 replies; 7+ messages in thread From: simark at simark dot ca @ 2024-01-11 16:51 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=31231 --- Comment #4 from Simon Marchi <simark at simark dot ca> --- Patch: https://inbox.sourceware.org/gdb-patches/20240111165125.134100-1-simon.marchi@efficios.com/T/#u -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug exp/31231] [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed. 2024-01-11 10:29 [Bug exp/31231] New: [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed vries at gcc dot gnu.org ` (3 preceding siblings ...) 2024-01-11 16:51 ` simark at simark dot ca @ 2024-01-11 18:12 ` cvs-commit at gcc dot gnu.org 2024-01-11 18:12 ` simark at simark dot ca 5 siblings, 0 replies; 7+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2024-01-11 18:12 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=31231 --- Comment #5 from Sourceware Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Simon Marchi <simark@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=47ff07a6c283a39fa3b8c92d823c8851678dfc0f commit 47ff07a6c283a39fa3b8c92d823c8851678dfc0f Author: Simon Marchi <simon.marchi@efficios.com> Date: Thu Jan 11 11:41:04 2024 -0500 gdb: fix frame passed to gdbarch_value_to_register in value_assign Commit 78f2fd84e83 ("gdb: remove VALUE_REGNUM, add value::regnum") introduced an unexpected change in value_assign. It replaced `get_prev_frame_always (next_frame)` with `next_frame`in the call to gdbarch_value_to_register. This is the result of a merge error, since I previously had a patch to change gdbarch_value_to_register to take the next frame, and later decided to drop it. Revert that change. Add a test based on the DWARF assembler to expose the problem and test the fix. I also tested on ppc64le to make sure the problem reported in PR 31231 was fixed. Change-Id: Ib8b851287ac27a4b2e386f7b680cf65865e6aee6 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31231 -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug exp/31231] [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed. 2024-01-11 10:29 [Bug exp/31231] New: [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed vries at gcc dot gnu.org ` (4 preceding siblings ...) 2024-01-11 18:12 ` cvs-commit at gcc dot gnu.org @ 2024-01-11 18:12 ` simark at simark dot ca 5 siblings, 0 replies; 7+ messages in thread From: simark at simark dot ca @ 2024-01-11 18:12 UTC (permalink / raw) To: gdb-prs https://sourceware.org/bugzilla/show_bug.cgi?id=31231 Simon Marchi <simark at simark dot ca> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #6 from Simon Marchi <simark at simark dot ca> --- Fixed. -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-01-11 18:12 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-01-11 10:29 [Bug exp/31231] New: [gdb, ppc64le] frame.c:2088: internal-error: get_next_frame_sentinel_okay: Assertion `!is_sentinel_frame_id (this_frame->this_id.value)' failed vries at gcc dot gnu.org 2024-01-11 10:44 ` [Bug exp/31231] " vries at gcc dot gnu.org 2024-01-11 10:52 ` vries at gcc dot gnu.org 2024-01-11 16:35 ` simark at simark dot ca 2024-01-11 16:51 ` simark at simark dot ca 2024-01-11 18:12 ` cvs-commit at gcc dot gnu.org 2024-01-11 18:12 ` simark at simark dot ca
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).