crash_dump: collect open files before dropping caps. am: c24cc8a9e5 am: db22633766
am: f0d7738ceb

Change-Id: Idae51eec742124d5fab1f0a478f658ed3549058a
diff --git a/debuggerd/crash_dump.cpp b/debuggerd/crash_dump.cpp
index 4e083ae..2889356 100644
--- a/debuggerd/crash_dump.cpp
+++ b/debuggerd/crash_dump.cpp
@@ -363,6 +363,12 @@
     LOG(FATAL) << "failed to create backtrace map";
   }
 
+  // Collect the list of open files.
+  OpenFilesList open_files;
+  if (!backtrace) {
+    populate_open_files_list(target, &open_files);
+  }
+
   // Drop our capabilities now that we've attached to the threads we care about.
   drop_capabilities();
 
@@ -375,10 +381,6 @@
   if (backtrace) {
     dump_backtrace(output_fd.get(), backtrace_map.get(), target, main_tid, attached_siblings, 0);
   } else {
-    // Collect the list of open files.
-    OpenFilesList open_files;
-    populate_open_files_list(target, &open_files);
-
     engrave_tombstone(output_fd.get(), backtrace_map.get(), open_files, target, main_tid,
                       attached_siblings, abort_address, fatal_signal ? &amfd_data : nullptr);
   }