summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-01-05 15:23:21 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-01-05 15:23:21 +0100
commit8edf33e8a9368ceb026ceba4283871b0aa5ed35d (patch)
treea971eca7f6585dda5b473450e122b89b850d3aea /lib
parentfc390919ac0a419fd1cfa2e1123b12c8a6e17c23 (diff)
downloadabrt-8edf33e8a9368ceb026ceba4283871b0aa5ed35d.tar.gz
abrt-8edf33e8a9368ceb026ceba4283871b0aa5ed35d.tar.xz
abrt-8edf33e8a9368ceb026ceba4283871b0aa5ed35d.zip
abrtd: limit the number of frames in backtrace to 3000
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/Plugins/CCpp.cpp3
-rw-r--r--lib/Plugins/Firefox.cpp3
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/Plugins/CCpp.cpp b/lib/Plugins/CCpp.cpp
index 79e3a48d..a5315b73 100644
--- a/lib/Plugins/CCpp.cpp
+++ b/lib/Plugins/CCpp.cpp
@@ -307,7 +307,8 @@ static void GetBacktrace(const char *pDebugDumpDir,
args[7] = (char*)corefile.c_str();
args[8] = (char*)"-ex";
- args[9] = (char*)"thread apply all backtrace full";
+ /* max 3000 frames: with no limit, gdb sometimes OOMs the machine */
+ args[9] = (char*)"thread apply all backtrace 3000 full";
args[10] = (char*)"-ex";
args[11] = (char*)"info sharedlib";
args[12] = NULL;
diff --git a/lib/Plugins/Firefox.cpp b/lib/Plugins/Firefox.cpp
index 2bb7f9c5..ab2ea8aa 100644
--- a/lib/Plugins/Firefox.cpp
+++ b/lib/Plugins/Firefox.cpp
@@ -278,7 +278,8 @@ static void GetBacktrace(const char *pDebugDumpDir, std::string& pBacktrace)
args[6] = (char*)"-ex";
args[7] = xasprintf("core-file %s/"FILENAME_COREDUMP, pDebugDumpDir);
args[8] = (char*)"-ex";
- args[9] = (char*)"thread apply all backtrace full";
+ /* max 3000 frames: with no limit, gdb sometimes OOMs the machine */
+ args[9] = (char*)"thread apply all backtrace 3000 full";
args[10] = NULL;
ExecVP(args, xatoi_u(UID.c_str()), pBacktrace);