blob: 83903ceb3c666b16f475cd44fba8d905468ca059 [file] [log] [blame]
// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// The crash reporter failure collector attempts to report crashes in
// crash_reporter that occur while it's processing a crash.
// In linux, if the program in /proc/sys/kernel/core_pattern crashes after being
// invoked, the kernel logs a special message and does NOT re-invoke the
// program. anomaly_detector picks up that message in logs and invokes
// crash_reporter (which runs this collector and hopefully doesn't crash again).
#ifndef CRASH_REPORTER_CRASH_REPORTER_FAILURE_COLLECTOR_H_
#define CRASH_REPORTER_CRASH_REPORTER_FAILURE_COLLECTOR_H_
#include <base/macros.h>
#include "crash-reporter/crash_collector.h"
// Collector to record crash_reportor itself crashing.
class CrashReporterFailureCollector : public CrashCollector {
public:
CrashReporterFailureCollector();
CrashReporterFailureCollector(const CrashReporterFailureCollector&) = delete;
CrashReporterFailureCollector& operator=(
const CrashReporterFailureCollector&) = delete;
~CrashReporterFailureCollector() override;
// Collect crash reporter failures.
bool Collect();
static CollectorInfo GetHandlerInfo(bool crash_reporter_crashed);
};
#endif // CRASH_REPORTER_CRASH_REPORTER_FAILURE_COLLECTOR_H_