gdb: extra debug output in thread.c
authorAndrew Burgess <aburgess@redhat.com>
Mon, 5 Sep 2022 15:56:35 +0000 (16:56 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Mon, 10 Oct 2022 11:16:18 +0000 (12:16 +0100)
Add some extra 'threads' debug in a couple of places in thread.c.
I've also added an additional gdb_assert in one case.

gdb/thread.c

index 378c5ee2d133ea17eef42c8d9041fc260c424fc0..349fc01dd48125565f97671cffe2cc73cf6ff5c2 100644 (file)
@@ -834,6 +834,10 @@ set_running_thread (struct thread_info *tp, bool running)
     started = true;
   tp->state = running ? THREAD_RUNNING : THREAD_STOPPED;
 
+  threads_debug_printf ("thread: %s, running? %d%s",
+                       tp->ptid.to_string ().c_str (), running,
+                       (started ? " (started" : ""));
+
   if (!running)
     {
       /* If the thread is now marked stopped, remove it from
@@ -1298,6 +1302,9 @@ info_threads_command_completer (struct cmd_list_element *ignore,
 void
 switch_to_thread_no_regs (struct thread_info *thread)
 {
+  gdb_assert (thread != nullptr);
+  threads_debug_printf ("thread = %s", thread->ptid.to_string ().c_str ());
+
   struct inferior *inf = thread->inf;
 
   set_current_program_space (inf->pspace);
@@ -1315,6 +1322,8 @@ switch_to_no_thread ()
   if (current_thread_ == nullptr)
     return;
 
+  threads_debug_printf ("thread = NONE");
+
   current_thread_ = nullptr;
   inferior_ptid = null_ptid;
   reinit_frame_cache ();