summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy M. Broome <thrirhrafnir@gmail.com>2018-03-05 11:39:37 -0500
committerHisham Muhammad <hisham@gobolinux.org>2018-04-06 11:13:30 -0300
commitdf5d81a881e3db28fcd7ff1bf3886e0ec3e03c54 (patch)
tree61a267f03781e03e118c9c6ccd81f6623caecbbf
parent6c2b3b546d809123b87daa95bda49aff9fe648e3 (diff)
Solaris: Import backtrace-on-abort from Linux, with minor modification for Solaris
-rw-r--r--solaris/SolarisCRT.c19
-rw-r--r--solaris/SolarisCRT.h5
2 files changed, 19 insertions, 5 deletions
diff --git a/solaris/SolarisCRT.c b/solaris/SolarisCRT.c
index 28511697..d7f8f52e 100644
--- a/solaris/SolarisCRT.c
+++ b/solaris/SolarisCRT.c
@@ -1,6 +1,7 @@
/*
htop - SolarisCRT.c
(C) 2014 Hisham H. Muhammad
+(C) 2018 Guy M. Broome
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/
@@ -9,13 +10,23 @@ in the source distribution for its full text.
#include "CRT.h"
#include <stdio.h>
#include <stdlib.h>
+#ifdef HAVE_EXECINFO_H
+#include <execinfo.h>
+#endif
void CRT_handleSIGSEGV(int sgn) {
(void) sgn;
CRT_done();
- fprintf(stderr, "\n\nhtop " VERSION " aborting.\n");
- fprintf(stderr, "\nUnfortunately, you seem to be using an unsupported platform!");
- fprintf(stderr, "\nPlease contact your platform package maintainer!\n\n");
+ fprintf(stderr, "\n\nhtop " VERSION " aborting. Please report bug at http://hisham.hm/htop\n");
+ #ifdef HAVE_EXECINFO_H
+ size_t size = backtrace(backtraceArray, sizeof(backtraceArray) / sizeof(void *));
+ fprintf(stderr, "\n Please include in your report the following backtrace: \n");
+ backtrace_symbols_fd(backtraceArray, size, 2);
+ fprintf(stderr, "\nAdditionally, in order to make the above backtrace useful,");
+ fprintf(stderr, "\nplease also run the following command to generate a disassembly of your binary:");
+ fprintf(stderr, "\n\n objdump -d `which htop` > ~/htop.objdump");
+ fprintf(stderr, "\n\nand then attach the file ~/htop.objdump to your bug report.");
+ fprintf(stderr, "\n\nThank you for helping to improve htop!\n\n");
+ #endif
abort();
}
-
diff --git a/solaris/SolarisCRT.h b/solaris/SolarisCRT.h
index c26de36b..6ab6dfca 100644
--- a/solaris/SolarisCRT.h
+++ b/solaris/SolarisCRT.h
@@ -5,11 +5,14 @@
/*
htop - SolarisCRT.h
(C) 2014 Hisham H. Muhammad
+(C) 2018 Guy M. Broome
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/
-void CRT_handleSIGSEGV(int sgn);
+#ifdef HAVE_EXECINFO_H
+#endif
+void CRT_handleSIGSEGV(int sgn);
#endif

© 2014-2024 Faster IT GmbH | imprint | privacy policy