Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Tom de Vries <tdevries@suse.de>
To: Andrew Burgess <aburgess@redhat.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH] [gdb/tui] Fix crash with debuginfod query
Date: Fri, 16 Jan 2026 14:25:49 +0100	[thread overview]
Message-ID: <d43daf58-6907-4506-b5b3-27e5d56616a3@suse.de> (raw)
In-Reply-To: <ad245589-4757-47b5-a810-489cff21074c@suse.de>

On 1/15/26 3:26 PM, Tom de Vries wrote:
> On 1/15/26 2:13 PM, Tom de Vries wrote:
>> Ok, I'll see if I can implement this approach in a more polished 
>> fashion.  Please let me know if you prefer to work on it your self.
> 
> FYI, sofar I got this, passes all TUI test-cases.
> 

I've submittted a v2 ( 
https://sourceware.org/pipermail/gdb-patches/2026-January/224103.html ).

Thanks,
- Tom

> Thanks,
> - Tom
> 
> ...
> diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
> index 272f5134d85..9280ce2a0fa 100644
> --- a/gdb/tui/tui-layout.c
> +++ b/gdb/tui/tui-layout.c
> @@ -268,6 +268,23 @@ tui_remove_some_windows ()
>     tui_apply_current_layout (true);
>   }
> 
> +extern bool defer_rerender;
> +bool defer_rerender = false;
> +
> +static std::vector<std::function<void ()>> deferred_rerender;
> +
> +extern void do_deferred_rerender ();
> +
> +void
> +do_deferred_rerender ()
> +{
> +  for (auto f: deferred_rerender)
> +    {
> +      f ();
> +    }
> +  deferred_rerender.clear ();
> +}
> +
>   void
>   tui_win_info::resize (int height_, int width_,
>                 int origin_x_, int origin_y_)
> @@ -296,7 +313,13 @@ tui_win_info::resize (int height_, int width_,
>     if (handle == nullptr)
>       make_window ();
> 
> -  rerender ();
> +  if (defer_rerender)
> +    deferred_rerender.push_back ([this] ()
> +      {
> +    rerender ();
> +      });
> +  else
> +    rerender ();
>   }
> 
> 
> 
> diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
> index fb94823f0fe..21e8838fa44 100644
> --- a/gdb/tui/tui.c
> +++ b/gdb/tui/tui.c
> @@ -393,6 +393,9 @@ gdb_getenv_term (void)
>     return "<unset>";
>   }
> 
> +extern bool defer_rerender;
> +extern void do_deferred_rerender ();
> +
>   /* Enter in the tui mode (curses).
>      When in normal mode, it installs the tui hooks in gdb, redirects
>      the gdb output, configures the readline to work in tui mode.
> @@ -493,6 +496,7 @@ tui_enable (void)
>         def_prog_mode ();
> 
>         tui_show_frame_info (deprecated_safe_get_selected_frame ());
> +      defer_rerender = true;
>         tui_set_initial_layout ();
>         tui_set_win_focus_to (tui_src_win ());
>         keypad (tui_cmd_win ()->handle.get (), TRUE);
> @@ -516,6 +520,9 @@ tui_enable (void)
> 
>     tui_setup_io (1);
> 
> +  do_deferred_rerender ();
> +  defer_rerender = false;
> +
>     /* Resize windows before anything might display/refresh a
>        window.  */
>     if (tui_win_resized ())
> 
> 


  reply	other threads:[~2026-01-16 13:26 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-14 17:28 Tom de Vries
2026-01-15 11:29 ` Andrew Burgess
2026-01-15 13:04   ` Tom de Vries
2026-01-16 13:24     ` Tom de Vries
2026-01-15 12:13 ` Andrew Burgess
2026-01-15 13:13   ` Tom de Vries
2026-01-15 14:26     ` Tom de Vries
2026-01-16 13:25       ` Tom de Vries [this message]
2026-01-16 14:53 ` Tom Tromey
2026-01-16 15:07   ` Tom de Vries
2026-01-17 13:14   ` Andrew Burgess

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d43daf58-6907-4506-b5b3-27e5d56616a3@suse.de \
    --to=tdevries@suse.de \
    --cc=aburgess@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox