Weaken condition to dump a thread's stack in a debug build.

If the current thread isn't suspended its also ok to dump the stack.
Bug: 14229281

Change-Id: I2810ea79bc4330bb6e9616436d74076b5997c20b
diff --git a/runtime/thread.cc b/runtime/thread.cc
index e5ae6d0..ca8c2d7 100644
--- a/runtime/thread.cc
+++ b/runtime/thread.cc
@@ -974,9 +974,14 @@
   // TODO: we call this code when dying but may not have suspended the thread ourself. The
   //       IsSuspended check is therefore racy with the use for dumping (normally we inhibit
   //       the race with the thread_suspend_count_lock_).
-  // No point dumping for an abort in debug builds where we'll hit the not suspended check in stack.
-  bool dump_for_abort = (gAborting > 0) && !kIsDebugBuild;
-  if (this == Thread::Current() || IsSuspended() || dump_for_abort) {
+  bool dump_for_abort = (gAborting > 0);
+  bool safe_to_dump = (this == Thread::Current() || IsSuspended());
+  if (!kIsDebugBuild) {
+    // We always want to dump the stack for an abort, however, there is no point dumping another
+    // thread's stack in debug builds where we'll hit the not suspended check in the stack walk.
+    safe_to_dump = (safe_to_dump || dump_for_abort);
+  }
+  if (safe_to_dump) {
     // If we're currently in native code, dump that stack before dumping the managed stack.
     if (dump_for_abort || ShouldShowNativeStack(this)) {
       DumpKernelStack(os, GetTid(), "  kernel: ", false);