[MediaWiki-commits] [Gerrit] Better error reporting for GCC - change (operations...incremental)

2013-09-20 Thread Petr Onderka (Code Review)
Petr Onderka has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/85189


Change subject: Better error reporting for GCC
..

Better error reporting for GCC

Change-Id: Icab577fcc7a61e1570dbb884a9e602d603cdf76f
---
M main.cpp
1 file changed, 23 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/dumps/incremental 
refs/changes/89/85189/1

diff --git a/main.cpp b/main.cpp
index 26fba7c..78e5b16 100644
--- a/main.cpp
+++ b/main.cpp
@@ -285,8 +285,31 @@
 diffReader.Read();
 }
 
+#ifdef __GNUC__
+void terminate_handler()
+{
+void** buffer = new void*[50];
+int count = backtrace(buffer, 50);
+backtrace_symbols_fd(buffer, count, STDERR_FILENO);
+
+auto ptr = std::current_exception();
+try
+{
+std::rethrow_exception(ptr);
+}
+catch (std::exception p)
+{
+std::cerr  p.what()  \n;
+}
+}
+#endif
+
 int main(int argc, const char* argv[])
 {
+#ifdef __GNUC__
+std::set_terminate(terminate_handler);
+#endif
+
 if (argc == 1)
 {
 printUsage();

-- 
To view, visit https://gerrit.wikimedia.org/r/85189
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icab577fcc7a61e1570dbb884a9e602d603cdf76f
Gerrit-PatchSet: 1
Gerrit-Project: operations/dumps/incremental
Gerrit-Branch: gsoc
Gerrit-Owner: Petr Onderka gsv...@gmail.com

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Better error reporting for GCC - change (operations...incremental)

2013-09-20 Thread Petr Onderka (Code Review)
Petr Onderka has submitted this change and it was merged.

Change subject: Better error reporting for GCC
..


Better error reporting for GCC

Change-Id: Icab577fcc7a61e1570dbb884a9e602d603cdf76f
---
M main.cpp
1 file changed, 25 insertions(+), 0 deletions(-)

Approvals:
  Petr Onderka: Verified; Looks good to me, approved



diff --git a/main.cpp b/main.cpp
index 26fba7c..2baff49 100644
--- a/main.cpp
+++ b/main.cpp
@@ -285,8 +285,33 @@
 diffReader.Read();
 }
 
+#ifdef __GNUC__
+#include execinfo.h
+
+void terminate_handler()
+{
+void** buffer = new void*[50];
+int count = backtrace(buffer, 50);
+backtrace_symbols_fd(buffer, count, STDERR_FILENO);
+
+auto ptr = std::current_exception();
+try
+{
+std::rethrow_exception(ptr);
+}
+catch (std::exception p)
+{
+std::cerr  p.what()  \n;
+}
+}
+#endif
+
 int main(int argc, const char* argv[])
 {
+#ifdef __GNUC__
+std::set_terminate(terminate_handler);
+#endif
+
 if (argc == 1)
 {
 printUsage();

-- 
To view, visit https://gerrit.wikimedia.org/r/85189
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Icab577fcc7a61e1570dbb884a9e602d603cdf76f
Gerrit-PatchSet: 2
Gerrit-Project: operations/dumps/incremental
Gerrit-Branch: gsoc
Gerrit-Owner: Petr Onderka gsv...@gmail.com
Gerrit-Reviewer: Petr Onderka gsv...@gmail.com

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits