Re: [PATCH 2/2] gdb: share some thread proceed related code between CLI and MI
Tom de Vries <[email protected]>
| Newsgroups | gmane.comp.gdb.patches |
|---|---|
| Message-ID | <[email protected]> |
On 8/7/26 5:31 PM, Andrew Burgess wrote: > Tom de Vries <[email protected]> writes: > >> On 8/6/26 10:54 PM, Andrew Burgess wrote: >>> + if (inf == nullptr) >>> + proceed_all_threads (); >>> + else >>> + { >>> + for (thread_info &thread : inf->threads ()) >>> + proceed_one_thread (thread); >>> } >> >> FWIW, also I wonder if it makes sense to fold this logic into >> proceed_all_threads: > > I took a look through all the other proceed() calls and couldn't see > anything else that might want to share this code, so my preference would > be to leave things as I initially proposed. I like the simpler each > function has one clear goal, rather than overloading proceed_all_threads > with multiple meanings ("all threads", or "all threads in inferior"). > Especially not a fan of default arguments for cases like this (or in > general much). > > That said, if you consider this a blocker to merging this patch then I > don't feel that strongly against it so would make the change to get this > fix merged. > Hi Andrew, I don't consider this a blocker. Thanks, - Tom > Just let me know. > > Thanks, > Andrew > > >> ... >> diff --git a/gdb/infcmd.c b/gdb/infcmd.c >> index 23e93587874..d2301ddf093 100644 >> --- a/gdb/infcmd.c >> +++ b/gdb/infcmd.c >> @@ -743,10 +743,18 @@ proceed_one_thread (thread_info &thread) >> /* See inferior.h. */ >> >> void >> -proceed_all_threads () >> +proceed_all_threads (inferior *inf) >> { >> gdb_assert (non_stop); >> >> + if (inf != nullptr) >> + { >> + for (thread_info &thread : inf->threads ()) >> + proceed_one_thread (thread); >> + >> + return; >> + } >> + >> for (thread_info &thread : all_threads ()) >> { >> /* We go through all threads individually instead of compressing >> diff --git a/gdb/inferior.h b/gdb/inferior.h >> index 8255654d9b8..2067f60ab7d 100644 >> --- a/gdb/inferior.h >> +++ b/gdb/inferior.h >> @@ -230,7 +230,7 @@ extern void continue_1 (bool all_threads_p); >> /* For use only when non_stop is true. Proceed all threads in every >> inferior. */ >> >> -extern void proceed_all_threads (); >> +extern void proceed_all_threads (inferior *inf = nullptr); >> >> /* For use only when non_stop is true. If THREAD is stopped, and is in an >> inferior that has_execution then switch to THREAD, clear its proceed >> diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c >> index e110b029e1e..1eb087b85db 100644 >> --- a/gdb/mi/mi-main.c >> +++ b/gdb/mi/mi-main.c >> @@ -259,13 +259,7 @@ exec_continue (const char *const *argv, int argc) >> if (!current_context->all) >> inf = find_inferior_id (current_context->thread_group); >> >> - if (inf == nullptr) >> - proceed_all_threads (); >> - else >> - { >> - for (thread_info &thread : inf->threads ()) >> - proceed_one_thread (thread); >> - } >> + proceed_all_threads (inf); >> >> disable_commit_resumed.reset_and_commit (); >> } >> ... >> >> Thanks, >> - Tom >