Fixup the dwfl_end () cleanup.
[debugger.git] / threadtest.c
index 63ea31c..971e940 100644 (file)
@@ -300,14 +300,16 @@ static void attach (pid_t pid)
   err = td_ta_new (&proc_handle_local, &thread_agent);
   assert (err == TD_OK || err == TD_NOLIBTHREAD);
   if (err == TD_NOLIBTHREAD)
+    puts ("singlethreaded");
+  else
     {
-      puts ("singlethreaded");
-      return;
+      puts ("multithreaded");
+      thread_test (thread_agent);
+      err = td_ta_delete (thread_agent);
+      assert (err == TD_OK);
     }
-  puts ("multithreaded");
-  thread_test (thread_agent);
-  err = td_ta_delete (thread_agent);
-  assert (err == TD_OK);
+  if (proc_handle_local.dwfl != NULL);
+    dwfl_end (proc_handle_local.dwfl);
 }
 
 static void *start (void *arg)