ART: Fix GetAllStackTraces

Correctly select threads, skip starting threads. Amend test.

Bug: 31684812
Test: m ART_TEST_JIT=true test-art-host-run-test-911-get-stack-trace
Change-Id: Ieae6ba135ec7ec677615064ca020e10e14ec2cfe
diff --git a/test/911-get-stack-trace/src/Main.java b/test/911-get-stack-trace/src/Main.java
index 500e945..3479abb 100644
--- a/test/911-get-stack-trace/src/Main.java
+++ b/test/911-get-stack-trace/src/Main.java
@@ -116,12 +116,21 @@
     t.join();
   }
 
+  private final static List<Object> RETAIN = new ArrayList<Object>();
+
   public static void doTestAllStackTraces() throws Exception {
     System.out.println();
     System.out.println("################################");
     System.out.println("### Other threads (suspended) ###");
     System.out.println("################################");
 
+    // Also create an unstarted and a dead thread.
+    RETAIN.add(new Thread());
+    Thread deadThread = new Thread();
+    RETAIN.add(deadThread);
+    deadThread.start();
+    deadThread.join();
+
     final int N = 10;
 
     final ControlData data = new ControlData(N);
@@ -155,6 +164,8 @@
     for (int i = 0; i < N; i++) {
       threads[i].join();
     }
+
+    RETAIN.clear();
   }
 
   public static void print(String[][] stack) {