diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2017-12-02 20:37:53 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2017-12-02 20:37:53 -0500 |
commit | f004534791145669d7765f8122e48f21e1deeb94 (patch) | |
tree | 9d9b85053867184ce2574f48489b16e4be3a817f | |
parent | 9521758bf967360fc1e18b2a2195d97ae19cb80d (diff) | |
download | gdb-f004534791145669d7765f8122e48f21e1deeb94.zip gdb-f004534791145669d7765f8122e48f21e1deeb94.tar.gz gdb-f004534791145669d7765f8122e48f21e1deeb94.tar.bz2 |
Remove for_each_inferior
This patch removes for_each_inferior, replacing all its usages with
for_each_thread.
gdb/gdbserver/ChangeLog:
* inferiors.c (for_each_inferior): Remove.
(clear_inferiors): Use for_each_thread.
* inferiors.h (for_each_inferior): Remove.
* linux-low.c (linux_wait_for_event_filtered): Use
for_each_thread.
(linux_stabilize_threads): Likewise.
* regcache.c (regcache_release): Likewise.
* server.c (gdb_wants_all_threads_stopped): Likewise.
(clear_pending_status_callback): Remove.
(handle_status): Use for_each_thread.
(captured_main): Likewise.
* win32-low.c (child_init_thread_list): Likewise.
(win32_clear_inferiors): Likewise.
(fake_breakpoint_event): Likewise.
-rw-r--r-- | gdb/gdbserver/ChangeLog | 17 | ||||
-rw-r--r-- | gdb/gdbserver/inferiors.c | 13 | ||||
-rw-r--r-- | gdb/gdbserver/inferiors.h | 2 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.c | 4 | ||||
-rw-r--r-- | gdb/gdbserver/regcache.c | 2 | ||||
-rw-r--r-- | gdb/gdbserver/server.c | 23 | ||||
-rw-r--r-- | gdb/gdbserver/win32-low.c | 6 |
7 files changed, 32 insertions, 35 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 882aff4..e852020 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,22 @@ 2017-12-02 Simon Marchi <simon.marchi@polymtl.ca> + * inferiors.c (for_each_inferior): Remove. + (clear_inferiors): Use for_each_thread. + * inferiors.h (for_each_inferior): Remove. + * linux-low.c (linux_wait_for_event_filtered): Use + for_each_thread. + (linux_stabilize_threads): Likewise. + * regcache.c (regcache_release): Likewise. + * server.c (gdb_wants_all_threads_stopped): Likewise. + (clear_pending_status_callback): Remove. + (handle_status): Use for_each_thread. + (captured_main): Likewise. + * win32-low.c (child_init_thread_list): Likewise. + (win32_clear_inferiors): Likewise. + (fake_breakpoint_event): Likewise. + +2017-12-02 Simon Marchi <simon.marchi@polymtl.ca> + * inferiors.h (find_inferior): Remove. * inferiors.c (find_inferior): Remove. diff --git a/gdb/gdbserver/inferiors.c b/gdb/gdbserver/inferiors.c index 47cc13a..093080d 100644 --- a/gdb/gdbserver/inferiors.c +++ b/gdb/gdbserver/inferiors.c @@ -31,17 +31,6 @@ struct thread_info *current_thread; static const char *current_inferior_cwd = NULL; void -for_each_inferior (std::list<thread_info *> *thread_list, - void (*action) (thread_info *)) -{ - gdb_assert (thread_list == &all_threads); - - for_each_thread ([&] (thread_info *thread) { - action (thread); - }); -} - -void for_each_inferior_with_data (std::list<thread_info *> *thread_list, void (*action) (thread_info *, void *), void *data) @@ -151,7 +140,7 @@ set_thread_regcache_data (struct thread_info *thread, struct regcache *data) void clear_inferiors (void) { - for_each_inferior (&all_threads, free_one_thread); + for_each_thread (free_one_thread); all_threads.clear (); clear_dlls (); diff --git a/gdb/gdbserver/inferiors.h b/gdb/gdbserver/inferiors.h index 2aab846..030d9c3 100644 --- a/gdb/gdbserver/inferiors.h +++ b/gdb/gdbserver/inferiors.h @@ -140,8 +140,6 @@ int have_attached_inferiors_p (void); void clear_inferiors (void); -void for_each_inferior (std::list<thread_info *> *thread_list, - void (*action) (thread_info *)); void for_each_inferior_with_data (std::list<thread_info *> *thread_list, void (*action) (thread_info *, void *), void *data); diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index d5449c4..f6a52d5 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -2736,7 +2736,7 @@ linux_wait_for_event_filtered (ptid_t wait_ptid, ptid_t filter_ptid, /* Now that we've pulled all events out of the kernel, resume LWPs that don't have an interesting event to report. */ if (stopping_threads == NOT_STOPPING_THREADS) - for_each_inferior (&all_threads, resume_stopped_resumed_lwps); + for_each_thread (resume_stopped_resumed_lwps); /* ... and find an LWP with a status to report to the core, if any. */ @@ -2972,7 +2972,7 @@ linux_stabilize_threads (void) stabilizing_threads = 1; /* Kick 'em all. */ - for_each_inferior (&all_threads, move_out_of_jump_pad_callback); + for_each_thread (move_out_of_jump_pad_callback); /* Loop until all are stopped out of the jump pads. */ while (find_thread (lwp_running) != NULL) diff --git a/gdb/gdbserver/regcache.c b/gdb/gdbserver/regcache.c index 5f71523..6a27042 100644 --- a/gdb/gdbserver/regcache.c +++ b/gdb/gdbserver/regcache.c @@ -281,7 +281,7 @@ void regcache_release (void) { /* Flush and release all pre-existing register caches. */ - for_each_inferior (&all_threads, free_register_cache_thread); + for_each_thread (free_register_cache_thread); } #endif diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index 26c4a01..cfc4a12 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -3216,7 +3216,7 @@ myresume (char *own_buf, int step, int sig) resume (resume_info, n); } -/* Callback for for_each_inferior. Make a new stop reply for each +/* Callback for for_each_thread. Make a new stop reply for each stopped thread. */ static void @@ -3281,19 +3281,10 @@ gdb_wants_thread_stopped (thread_info *thread) static void gdb_wants_all_threads_stopped (void) { - for_each_inferior (&all_threads, gdb_wants_thread_stopped); + for_each_thread (gdb_wants_thread_stopped); } -/* Callback for for_each_inferior. Clear the thread's pending status - flag. */ - -static void -clear_pending_status_callback (thread_info *thread) -{ - thread->status_pending_p = 0; -} - -/* Callback for for_each_inferior. If the thread is stopped with an +/* Callback for for_each_thread. If the thread is stopped with an interesting event, mark it as having a pending event. */ static void @@ -3348,7 +3339,7 @@ handle_status (char *own_buf) reporting now pending. They'll be reported the next time the threads are resumed. Start by marking all interesting events as pending. */ - for_each_inferior (&all_threads, set_pending_status_callback); + for_each_thread (set_pending_status_callback); /* Prefer the last thread that reported an event to GDB (even if that was a GDB_SIGNAL_TRAP). */ @@ -3869,8 +3860,10 @@ captured_main (int argc, char *argv[]) (by the same GDB instance or another) will refresh all its state from scratch. */ discard_queued_stop_replies (minus_one_ptid); - for_each_inferior (&all_threads, - clear_pending_status_callback); + for_each_thread ([] (thread_info *thread) + { + thread->status_pending_p = 0; + }); if (tracing) { diff --git a/gdb/gdbserver/win32-low.c b/gdb/gdbserver/win32-low.c index fecab84..be671a6 100644 --- a/gdb/gdbserver/win32-low.c +++ b/gdb/gdbserver/win32-low.c @@ -339,7 +339,7 @@ child_xfer_memory (CORE_ADDR memaddr, char *our, int len, static void child_init_thread_list (void) { - for_each_inferior (&all_threads, delete_thread_info); + for_each_thread (delete_thread_info); } /* Zero during the child initialization phase, and nonzero otherwise. */ @@ -793,7 +793,7 @@ win32_clear_inferiors (void) if (current_process_handle != NULL) CloseHandle (current_process_handle); - for_each_inferior (&all_threads, delete_thread_info); + for_each_thread (delete_thread_info); clear_inferiors (); } @@ -1362,7 +1362,7 @@ fake_breakpoint_event (void) current_event.u.Exception.ExceptionRecord.ExceptionCode = EXCEPTION_BREAKPOINT; - for_each_inferior (&all_threads, suspend_one_thread); + for_each_thread (suspend_one_thread); } #ifdef _WIN32_WCE |