Improved dumpstate logging.
BUG: 26906985
Change-Id: Id439560504a365961337fddcca4ba6c1ef9f377d
diff --git a/cmds/dumpstate/dumpstate.cpp b/cmds/dumpstate/dumpstate.cpp
index 128681f..f5c9d05 100644
--- a/cmds/dumpstate/dumpstate.cpp
+++ b/cmds/dumpstate/dumpstate.cpp
@@ -485,7 +485,8 @@
/* adds a new entry to the existing zip file. */
static bool add_zip_entry_from_fd(const std::string& entry_name, int fd) {
if (!zip_writer) {
- MYLOGD("Not adding zip entry %s from fd because zip_writer is not set\n", entry_name.c_str());
+ MYLOGD("Not adding zip entry %s from fd because zip_writer is not set\n",
+ entry_name.c_str());
return false;
}
// Logging statement below is useful to time how long each entry takes, but it's too verbose.
@@ -545,6 +546,7 @@
MYLOGD("Not adding dir %s because zip_writer is not set\n", dir);
return;
}
+ MYLOGD("Adding dir %s (recursive: %d)\n", dir, recursive);
DurationReporter duration_reporter(dir, NULL);
dump_files(NULL, dir, recursive ? skip_none : is_dir, _add_file_from_fd);
}
@@ -1065,6 +1067,7 @@
}
/* parse arguments */
+ log_args("Dumpstate command line", argc, const_cast<const char **>(argv));
int c;
while ((c = getopt(argc, argv, "dho:svqzpPBRV:")) != -1) {
switch (c) {
@@ -1326,8 +1329,9 @@
bool do_text_file = true;
if (do_zip_file) {
- MYLOGD("Adding text entry to .zip bugreport\n");
- if (!finish_zip_file(base_name + "-" + suffix + ".txt", tmp_path, now)) {
+ std::string entry_name = base_name + "-" + suffix + ".txt";
+ MYLOGD("Adding main entry (%s) to .zip bugreport\n", entry_name.c_str());
+ if (!finish_zip_file(entry_name, tmp_path, now)) {
MYLOGE("Failed to finish zip file; sending text bugreport instead\n");
do_text_file = true;
} else {
@@ -1335,8 +1339,8 @@
}
}
if (do_text_file) {
- MYLOGD("Generating .txt bugreport\n");
path = bugreport_dir + "/" + base_name + "-" + suffix + ".txt";
+ MYLOGD("Generating .txt bugreport at %s from %s\n", path.c_str(), tmp_path.c_str());
if (rename(tmp_path.c_str(), path.c_str())) {
MYLOGE("rename(%s, %s): %s\n", tmp_path.c_str(), path.c_str(), strerror(errno));
path.clear();
diff --git a/cmds/dumpstate/dumpstate.h b/cmds/dumpstate/dumpstate.h
index a8aea42..9c975d2 100644
--- a/cmds/dumpstate/dumpstate.h
+++ b/cmds/dumpstate/dumpstate.h
@@ -171,6 +171,9 @@
/* dump eMMC Extended CSD data */
void dump_emmc_ecsd(const char *ext_csd_path);
+/** logs command-line arguments */
+void log_args(const std::string& message, int argc, const char *argv[]);
+
/*
* Helper class used to report how long it takes for a section to finish.
*
diff --git a/cmds/dumpstate/utils.cpp b/cmds/dumpstate/utils.cpp
index 282a772..f0ae325 100644
--- a/cmds/dumpstate/utils.cpp
+++ b/cmds/dumpstate/utils.cpp
@@ -713,6 +713,7 @@
}
// Always terminate with NULL.
am_args[am_index + 1] = NULL;
+ log_args("send_broadcast arguments", am_index, am_args);
run_command_always(NULL, 5, am_args);
}
@@ -1187,3 +1188,12 @@
printf("\n");
}
+
+void log_args(const std::string& message, int argc, const char *argv[]) {
+ std::string args;
+ for (int i = 0; i < argc; i++) {
+ args.append(argv[i]);
+ args.append(" ");
+ }
+ MYLOGI("%s: %s\n", message.c_str(), args.c_str());
+}