summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Plugins/CCpp.cpp17
-rw-r--r--src/Hooks/CCpp.cpp4
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/Plugins/CCpp.cpp b/lib/Plugins/CCpp.cpp
index fe6c56c..47bfceb 100644
--- a/lib/Plugins/CCpp.cpp
+++ b/lib/Plugins/CCpp.cpp
@@ -534,6 +534,23 @@ void CAnalyzerCCpp::Init()
getline(fInCorePattern, m_sOldCorePattern);
fInCorePattern.close();
}
+ if (m_sOldCorePattern[0] == '|')
+ {
+ if (m_sOldCorePattern == CORE_PATTERN)
+ {
+ fprintf(stderr, "warning: %s already contains %s, "
+ "did abrt daemon crash recently?\n",
+ CORE_PATTERN_IFACE, CORE_PATTERN);
+ /* There is no point in "restoring" CORE_PATTERN_IFACE
+ * to CORE_PATTERN on exit. Will restore to a default value:
+ */
+ m_sOldCorePattern = "core";
+ }
+ fprintf(stderr, "warning: %s was already set to run a crash analyser (%s), "
+ "abrt may interfere with it\b",
+ CORE_PATTERN_IFACE, CORE_PATTERN);
+ }
+
std::ofstream fOutCorePattern;
fOutCorePattern.open(CORE_PATTERN_IFACE);
if (fOutCorePattern.is_open())
diff --git a/src/Hooks/CCpp.cpp b/src/Hooks/CCpp.cpp
index 27c813f..017ecc4 100644
--- a/src/Hooks/CCpp.cpp
+++ b/src/Hooks/CCpp.cpp
@@ -147,6 +147,10 @@ int main(int argc, char** argv)
}
if (!daemon_is_ok())
{
+ fprintf(stderr, "abrt daemon is not running. If it crashed, "
+ "/proc/sys/kernel/core_pattern contains a stale value, "
+ "consider resetting it to 'core'\n"
+ );
return 0;
}