summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-01-29 13:11:59 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-01-29 13:11:59 +0100
commit37f47955eae6998f61da280f3e4da601e4aea6c0 (patch)
treefb6d7bc75d71c298f7eaac0edbdff8802db3d443 /src
parent84e601a07d0c259ea141e80eed8eb40f8d465c18 (diff)
parent7b8b85d25ef4a2e0e49fc94b3bd47f8aa945091f (diff)
downloadabrt-37f47955eae6998f61da280f3e4da601e4aea6c0.tar.gz
abrt-37f47955eae6998f61da280f3e4da601e4aea6c0.tar.xz
abrt-37f47955eae6998f61da280f3e4da601e4aea6c0.zip
Merge branch 'master' into rhel6
Diffstat (limited to 'src')
-rw-r--r--src/Daemon/MiddleWare.cpp10
-rw-r--r--src/Gui/CCReporterDialog.py8
2 files changed, 15 insertions, 3 deletions
diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp
index ba7e0a05..f69c8a30 100644
--- a/src/Daemon/MiddleWare.cpp
+++ b/src/Daemon/MiddleWare.cpp
@@ -383,10 +383,13 @@ report_status_t Report(const map_crash_data_t& client_report,
const std::string& pDumpDir = get_crash_data_item_content(stored_report, CD_DUMPDIR);
// Save comment, "how to reproduce", backtrace
+//TODO: we should iterate through stored_report and modify all
+//modifiable fields which have new data in client_report
const char *comment = get_crash_data_item_content_or_NULL(client_report, FILENAME_COMMENT);
const char *reproduce = get_crash_data_item_content_or_NULL(client_report, FILENAME_REPRODUCE);
const char *backtrace = get_crash_data_item_content_or_NULL(client_report, FILENAME_BACKTRACE);
- if (comment || reproduce || backtrace)
+ const char *kerneloops = get_crash_data_item_content_or_NULL(client_report, FILENAME_KERNELOOPS);
+ if (comment || reproduce || backtrace || kerneloops)
{
CDebugDump dd;
dd.Open(pDumpDir.c_str());
@@ -405,6 +408,11 @@ report_status_t Report(const map_crash_data_t& client_report,
dd.SaveText(FILENAME_BACKTRACE, backtrace);
add_to_crash_data_ext(stored_report, FILENAME_BACKTRACE, CD_TXT, CD_ISEDITABLE, backtrace);
}
+ if (kerneloops)
+ {
+ dd.SaveText(FILENAME_KERNELOOPS, kerneloops);
+ add_to_crash_data_ext(stored_report, FILENAME_KERNELOOPS, CD_TXT, CD_ISEDITABLE, kerneloops);
+ }
}
const std::string& analyzer = get_crash_data_item_content(stored_report, FILENAME_ANALYZER);
diff --git a/src/Gui/CCReporterDialog.py b/src/Gui/CCReporterDialog.py
index a04725bd..b5f57d74 100644
--- a/src/Gui/CCReporterDialog.py
+++ b/src/Gui/CCReporterDialog.py
@@ -219,7 +219,8 @@ class ReporterDialog():
except:
pass
- if item == FILENAME_BACKTRACE:
+ if item == FILENAME_BACKTRACE or item == FILENAME_KERNELOOPS:
+ self.is_oops = item == FILENAME_KERNELOOPS
buff = gtk.TextBuffer()
tvBacktrace = self.builder.get_object("tvBacktrace")
buff.set_text(self.report[item][CD_CONTENT])
@@ -308,7 +309,10 @@ class ReporterDialog():
tev_backtrace = self.builder.get_object("tvBacktrace")
buff = tev_backtrace.get_buffer()
text = buff.get_text(buff.get_start_iter(), buff.get_end_iter())
- self.report[FILENAME_BACKTRACE] = [CD_TXT, 'y', text]
+ if self.is_oops:
+ self.report[FILENAME_KERNELOOPS] = [CD_TXT, 'y', text]
+ else:
+ self.report[FILENAME_BACKTRACE] = [CD_TXT, 'y', text]
def check_report(self):
# FIXME: check the report for passwords and some other potentially