summaryrefslogtreecommitdiffstats
path: root/linux/LinuxCRT.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2014-11-24 18:55:49 -0200
committerHisham Muhammad <hisham@gobolinux.org>2014-11-24 18:55:49 -0200
commit26422af6088129b99864b75ed4ce5395aa578f2b (patch)
tree17894ef39e9191af62d68c47efe25459ef52233f /linux/LinuxCRT.c
parenteb229d9aefa622d3ae25fc7c92b9f66590216d8b (diff)
Files moved and added for supporting separate platforms.
Diffstat (limited to 'linux/LinuxCRT.c')
-rw-r--r--linux/LinuxCRT.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/linux/LinuxCRT.c b/linux/LinuxCRT.c
new file mode 100644
index 00000000..e0a12821
--- /dev/null
+++ b/linux/LinuxCRT.c
@@ -0,0 +1,36 @@
+/*
+htop - LinuxCRT.c
+(C) 2014 Hisham H. Muhammad
+Released under the GNU GPL, see the COPYING file
+in the source distribution for its full text.
+*/
+
+#include "config.h"
+#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();
+ #ifdef __linux
+ 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
+ #else
+ fprintf(stderr, "\nUnfortunately, you seem to be using an unsupported platform!");
+ fprintf(stderr, "\nPlease contact your platform package mantainer!\n\n");
+ #endif
+ abort();
+}