From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id D9FF9385E459; Tue, 22 Mar 2022 12:29:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D9FF9385E459 From: "jan at vrany dot io" To: gdb-prs@sourceware.org Subject: [Bug mi/28988] New: GDB crashes when using GDB/MI and python pretty printers in some cases Date: Tue, 22 Mar 2022 12:29:06 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gdb X-Bugzilla-Component: mi X-Bugzilla-Version: HEAD X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jan at vrany dot io X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gdb-prs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-prs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Mar 2022 12:29:07 -0000 https://sourceware.org/bugzilla/show_bug.cgi?id=3D28988 Bug ID: 28988 Summary: GDB crashes when using GDB/MI and python pretty printers in some cases Product: gdb Version: HEAD Status: UNCONFIRMED Severity: normal Priority: P2 Component: mi Assignee: unassigned at sourceware dot org Reporter: jan at vrany dot io Target Milestone: --- Created attachment 14031 --> https://sourceware.org/bugzilla/attachment.cgi?id=3D14031&action=3Ded= it A transcript of commands that produced the crash After updating my every-day-use GDB to commit commit c9178f285acf19e066be8367185d52837161b0a2 (HEAD -> master, origin/mas= ter) Author: Alan Modra Date: Thu Mar 17 20:05:39 2022 +1030 I'm experiencing GDB to crash on assertion failure in value_copy (value.c:1731). This is triggered when I single-step through code while having (my, custom) GDB/MI frontent displaying local variables with python pretty printers enabled.=20 For example: doing this in frontend triggers the assertion failure: file gdb/testsuite/outputs/gdb.python/py-prettyprint/py-prettyprint-cxx source gdb/testsuite/outputs/gdb.python/py-prettyprint/py-prettyprint.py b add_item(container*, int) r dis 1 fin n n (few more times until it crashes) This is the backtrace when it crashes: /home/jv/Proj...atches/gdb/gdb [stopped] Thread 1 [stopped] "gdb" 0 0x0000556077ADABD0 internal_error (errors.cc:51) 1 0x00005560776148A7 value_copy (value.c:1731) 2 0x0000556077360028 gdbpy_get_varobj_pretty_printer (py-prettyprint.c:655) 3 0x0000556077620E60 install_default_visualizer (varobj.c:1056) 4 0x00005560776210E9 install_new_value_visualizer (varobj.c:1127) 5 0x00005560776218B2 install_new_value (varobj.c:1339) 6 0x000055607761F6FB varobj_create (varobj.c:378) 7 0x0000556077245C05 mi_cmd_var_create (mi-cmd-var.c:132) 8 0x0000556077249F2B mi_command_mi::invoke (mi-cmds.c:58) 9 0x0000556077264F15 mi_cmd_execute (mi-main.c:2091) 10 0x000055607726450C captured_mi_execute_command (mi-main.c:1823) 11 0x000055607726498A mi_execute_command (mi-main.c:1947) 12 0x000055607724D21B mi_execute_command_wrapper (mi-interp.c:285) 13 0x000055607724D2A4 mi_execute_command_input_handler (mi-interp.c:314) 14 0x00005560770D7149 gdb_readline_no_editing_callback (event-top.c:878) 15 0x00005560770D6948 stdin_event_handler (event-top.c:524) 16 0x0000556077ADB57E gdb_wait_for_event (event-loop.cc:700) 17 0x0000556077ADB7FB gdb_wait_for_event (event-loop.cc:596) 18 0x0000556077ADB7FB gdb_do_one_event (event-loop.cc:237) 19 0x000055607721BA1B start_event_loop (main.c:421) 20 0x000055607721BB3F captured_command_loop (main.c:481) 21 0x000055607721D535 captured_main (main.c:1351) 22 0x000055607721D59B gdb_main (main.c:1366) 23 0x0000556076DA7E93 main (gdb.c:32) Thread 2 [stopped] "gdb worker" Thread 3 [stopped] "gdb worker" Thread 4 [stopped] "gdb worker" Thread 5 [stopped] "gdb worker" Unfortunately, so far I was unable to reproduce this outside my frontend. I tried to simulate what the frontend does (see attached file), but running GDB like gdb -i mi < crash-in-value_copy-reproducer.txt does not trigger it (arguably, the frontend issues silly / unnecessary MI commands, but still it should not crash GDB - I would think :-). If I revert commit commit 5f8ab46bc6918efb678deb5956c033e466afe301 Author: Simon Marchi Date: Mon Jan 31 15:57:58 2022 -0500 gdb: constify parameter of value_copy Everything seems to work just fine for me. I'm not at all familiar with this part of the GDB code so I do not know whether this change is the real culpr= it=20 or not, let alone to explain why. --=20 You are receiving this mail because: You are on the CC list for the bug.=