diff options
-rw-r--r-- | runtime/signal_catcher.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/runtime/signal_catcher.cc b/runtime/signal_catcher.cc index c13776d57a..11e06fe885 100644 --- a/runtime/signal_catcher.cc +++ b/runtime/signal_catcher.cc @@ -28,6 +28,7 @@ #include "base/unix_file/fd_file.h" #include "class_linker.h" #include "gc/heap.h" +#include "instruction_set.h" #include "os.h" #include "runtime.h" #include "scoped_thread_state_change.h" @@ -42,20 +43,21 @@ static void DumpCmdLine(std::ostream& os) { #if defined(__linux__) // Show the original command line, and the current command line too if it's changed. // On Android, /proc/self/cmdline will have been rewritten to something like "system_server". + // Note: The string "Cmd line:" is chosen to match the format used by debuggerd. std::string current_cmd_line; if (ReadFileToString("/proc/self/cmdline", ¤t_cmd_line)) { - current_cmd_line.resize(current_cmd_line.size() - 1); // Lose the trailing '\0'. + current_cmd_line.resize(current_cmd_line.find_last_not_of('\0') + 1); // trim trailing '\0's std::replace(current_cmd_line.begin(), current_cmd_line.end(), '\0', ' '); - os << "Cmdline: " << current_cmd_line; + os << "Cmd line: " << current_cmd_line << "\n"; const char* stashed_cmd_line = GetCmdLine(); - if (stashed_cmd_line != NULL && current_cmd_line != stashed_cmd_line) { - os << "Original command line: " << stashed_cmd_line; + if (stashed_cmd_line != NULL && current_cmd_line != stashed_cmd_line + && strcmp(stashed_cmd_line, "<unset>") != 0) { + os << "Original command line: " << stashed_cmd_line << "\n"; } } - os << "\n"; #else - os << "Cmdline: " << GetCmdLine() << "\n"; + os << "Cmd line: " << GetCmdLine() << "\n"; #endif } @@ -133,6 +135,9 @@ void SignalCatcher::HandleSigQuit() { DumpCmdLine(os); + // Note: The string "ABI:" is chosen to match the format used by debuggerd. + os << "ABI: " << GetInstructionSetString(runtime->GetInstructionSet()) << "\n"; + os << "Build type: " << (kIsDebugBuild ? "debug" : "optimized") << "\n"; runtime->DumpForSigQuit(os); |