summaryrefslogtreecommitdiffstats
path: root/lib/Plugins/Firefox.cpp
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-01-07 12:37:45 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-01-07 12:37:45 +0100
commit6b36135970dd9ba4694e626e3fbd8166c64d8cdc (patch)
tree09468c7403bdd77ceddb02ac3571e83a6a504406 /lib/Plugins/Firefox.cpp
parent9fa0918b822b4d81a8adf7392c4e18e87d351872 (diff)
downloadabrt-6b36135970dd9ba4694e626e3fbd8166c64d8cdc.tar.gz
abrt-6b36135970dd9ba4694e626e3fbd8166c64d8cdc.tar.xz
abrt-6b36135970dd9ba4694e626e3fbd8166c64d8cdc.zip
ccpp: add a possibility to disable backtrace generation
+ assorted minor tweaks Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'lib/Plugins/Firefox.cpp')
-rw-r--r--lib/Plugins/Firefox.cpp23
1 files changed, 17 insertions, 6 deletions
diff --git a/lib/Plugins/Firefox.cpp b/lib/Plugins/Firefox.cpp
index ab2ea8a..92ef4e5 100644
--- a/lib/Plugins/Firefox.cpp
+++ b/lib/Plugins/Firefox.cpp
@@ -43,6 +43,7 @@
#define DEBUGINFO_CACHE_DIR LOCALSTATEDIR"/cache/abrt-di"
CAnalyzerFirefox::CAnalyzerFirefox() :
+ m_bBacktrace(true),
m_bMemoryMap(false),
m_bInstallDebugInfo(true),
m_nDebugInfoCacheMB(4000)
@@ -148,7 +149,7 @@ static pid_t ExecVP(char** pArgs, uid_t uid, std::string& pOutput)
}
close(pipeout[0]);
- wait(NULL); /* prevent having zombie child process */
+ waitpid(child, NULL, 0); /* prevent having zombie child process */
return 0;
}
@@ -608,7 +609,7 @@ Another application is holding the yum lock, cannot continue
if (pipeout_fp == NULL) /* never happens */
{
close(pipeout[0]);
- wait(NULL);
+ waitpid(child, NULL, 0);
return;
}
@@ -652,14 +653,14 @@ Another application is holding the yum lock, cannot continue
{
fclose(pipeout_fp);
kill(child, SIGTERM);
- wait(NULL);
+ waitpid(child, NULL, 0);
throw CABRTException(EXCEP_PLUGIN, "%s: can't install debuginfos for %s", __func__, pPackage);
}
#endif
}
fclose(pipeout_fp);
- wait(NULL);
+ waitpid(child, NULL, 0);
}
#endif
/* Needs gdb feature from here: https://bugzilla.redhat.com/show_bug.cgi?id=528668
@@ -704,7 +705,7 @@ static void InstallDebugInfos(const char *pDebugDumpDir, std::string& build_ids)
if (pipeout_fp == NULL) /* never happens */
{
close(pipeout[0]);
- wait(NULL);
+ waitpid(child, NULL, 0);
return;
}
@@ -735,7 +736,7 @@ static void InstallDebugInfos(const char *pDebugDumpDir, std::string& build_ids)
}
fclose(pipeout_fp);
- wait(NULL);
+ waitpid(child, NULL, 0);
}
static double get_dir_size(const char *dirname, std::string *worst_file, double *maxsz)
@@ -873,6 +874,11 @@ void CAnalyzerFirefox::CreateReport(const char *pDebugDumpDir, int force)
CDebugDump dd;
dd.Open(pDebugDumpDir);
+ if (!m_bBacktrace)
+ {
+ return;
+ }
+
if (!force)
{
bool bt_exists = dd.Exist(FILENAME_BACKTRACE);
@@ -962,6 +968,11 @@ void CAnalyzerFirefox::SetSettings(const map_plugin_settings_t& pSettings)
map_plugin_settings_t::const_iterator end = pSettings.end();
map_plugin_settings_t::const_iterator it;
+ it = pSettings.find("Backtrace");
+ if (it != end)
+ {
+ m_bBacktrace = string_to_bool(it->second.c_str());
+ }
it = pSettings.find("MemoryMap");
if (it != end)
{