summaryrefslogtreecommitdiffstats
path: root/src/Daemon/MiddleWare.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Daemon/MiddleWare.cpp')
-rw-r--r--src/Daemon/MiddleWare.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp
index 6480ab57..30dd012c 100644
--- a/src/Daemon/MiddleWare.cpp
+++ b/src/Daemon/MiddleWare.cpp
@@ -336,6 +336,24 @@ report_status_t Report(const map_crash_report_t& pCrashReport,
std::string packageNVR = pCrashReport.find(FILENAME_PACKAGE)->second[CD_CONTENT];
std::string packageName = packageNVR.substr(0, packageNVR.rfind("-", packageNVR.rfind("-") - 1 ));
+ // Save comments and how to reproduciton
+ map_crash_report_t::const_iterator it_comment = pCrashReport.find(CD_COMMENT);
+ map_crash_report_t::const_iterator it_reproduce = pCrashReport.find(CD_REPRODUCE);
+ std::cout << "save reproduce " << std::endl << it_reproduce->second[CD_CONTENT] << std::endl;
+ std::string pDumpDir = getDebugDumpDir(UUID,UID);
+ CDebugDump dd;
+ dd.Open(pDumpDir);
+ if ( it_comment != pCrashReport.end() )
+ {
+ std::cout << "save comment " << std::endl << it_comment->second[CD_CONTENT] << std::endl;
+ dd.SaveText(FILENAME_COMMENTS, it_comment->second[CD_CONTENT]);
+ }
+ if ( it_reproduce != pCrashReport.end() )
+ {
+ std::cout << "save reproduce " << std::endl << it_reproduce->second[CD_CONTENT] << std::endl;
+ dd.SaveText(FILENAME_REPRODUCE, it_reproduce->second[CD_CONTENT]);
+ }
+ dd.Close();
// analyzer with package name (CCpp:xrog-x11-app) has higher priority
key = analyzer + ":" + packageName;
map_analyzer_actions_and_reporters_t::iterator keyPtr = s_mapAnalyzerActionsAndReporters.find(key);
@@ -602,6 +620,17 @@ static mw_result_t SaveDebugDumpToDatabase(const std::string& pUUID,
return res;
}
+std::string getDebugDumpDir( const std::string& pUUID,
+ const std::string& pUID)
+{
+ CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase);
+ database_row_t row;
+ database->Connect();
+ row = database->GetUUIDData(pUUID, pUID);
+ database->DisConnect();
+ return row.m_sDebugDumpDir;
+}
+
mw_result_t SaveDebugDump(const std::string& pDebugDumpDir)
{
map_crash_info_t info;