Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Unified Diff: crash_reporter.cc

Issue 3040013: Start invoking core2md to implement full system crash reporting (Closed) Base URL: ssh://git@chromiumos-git//crash-reporter.git
Patch Set: Replace all STREQ macros Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Makefile ('k') | crash_sender » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: crash_reporter.cc
diff --git a/crash_reporter.cc b/crash_reporter.cc
index 80494cc6ced7c9dd4f2ae294be2429f71c935b5b..0930cea447e19927f893193b6a02db7eaa7cfaaf 100644
--- a/crash_reporter.cc
+++ b/crash_reporter.cc
@@ -16,22 +16,22 @@
DEFINE_bool(init, false, "Initialize crash logging");
DEFINE_bool(clean_shutdown, false, "Signal clean shutdown");
DEFINE_bool(crash_test, false, "Crash test");
-DEFINE_string(exec, "", "Executable name crashed");
DEFINE_int32(pid, -1, "Crashing PID");
DEFINE_int32(signal, -1, "Signal causing crash");
DEFINE_bool(unclean_check, true, "Check for unclean shutdown");
#pragma GCC diagnostic error "-Wstrict-aliasing"
static const char kCrashCounterHistogram[] = "Logging.CrashCounter";
+static const char kEmpty[] = "";
static const char kUncleanShutdownFile[] =
"/var/lib/crash_reporter/pending_clean_shutdown";
-static const char kEmpty[] = "";
+
// Enumeration of kinds of crashes to be used in the CrashCounter histogram.
enum CrashKinds {
- CRASH_KIND_KERNEL = 1,
- CRASH_KIND_USER = 2,
- CRASH_KIND_MAX
+ kCrashKindKernel = 1,
+ kCrashKindUser = 2,
+ kCrashKindMax
};
static MetricsLibrary s_metrics_lib;
@@ -52,8 +52,8 @@ static void CheckUncleanShutdown() {
s_system_log.LogWarning("Last shutdown was not clean");
if (IsMetricsCollectionAllowed()) {
s_metrics_lib.SendEnumToUMA(std::string(kCrashCounterHistogram),
- CRASH_KIND_KERNEL,
- CRASH_KIND_MAX);
+ kCrashKindKernel,
+ kCrashKindMax);
}
if (!file_util::Delete(unclean_file_path, false)) {
s_system_log.LogError("Failed to delete unclean shutdown file %s",
@@ -82,8 +82,8 @@ static void SignalCleanShutdown() {
static void CountUserCrash() {
CHECK(IsMetricsCollectionAllowed());
s_metrics_lib.SendEnumToUMA(std::string(kCrashCounterHistogram),
- CRASH_KIND_USER,
- CRASH_KIND_MAX);
+ kCrashKindUser,
+ kCrashKindMax);
// Announce through D-Bus whenever a user crash happens. This is
// used by the metrics daemon to log active use time between
@@ -108,7 +108,8 @@ int main(int argc, char *argv[]) {
user_collector.Initialize(CountUserCrash,
my_path.value(),
IsMetricsCollectionAllowed,
- &s_system_log);
+ &s_system_log,
+ true); // generate_diagnostics
if (FLAGS_init) {
CHECK(!FLAGS_clean_shutdown) << "Incompatible options";
@@ -131,7 +132,6 @@ int main(int argc, char *argv[]) {
// Handle a specific user space crash.
CHECK(FLAGS_signal != -1) << "Signal must be set";
CHECK(FLAGS_pid != -1) << "PID must be set";
- CHECK(FLAGS_exec != "") << "Executable name must be set";
// Make it possible to test what happens when we crash while
// handling a crash.
@@ -140,7 +140,10 @@ int main(int argc, char *argv[]) {
return 0;
}
- user_collector.HandleCrash(FLAGS_signal, FLAGS_pid, FLAGS_exec);
+ // Handle the crash, get the name of the process from procfs.
+ if (!user_collector.HandleCrash(FLAGS_signal, FLAGS_pid, NULL)) {
+ return 1;
+ }
return 0;
}
« no previous file with comments | « Makefile ('k') | crash_sender » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698