Commit df5d81a8 authored by Guy M. Broome's avatar Guy M. Broome Committed by Hisham Muhammad
Browse files

Solaris: Import backtrace-on-abort from Linux, with minor modification for Solaris

parent 6c2b3b54
/* /*
htop - SolarisCRT.c htop - SolarisCRT.c
(C) 2014 Hisham H. Muhammad (C) 2014 Hisham H. Muhammad
(C) 2018 Guy M. Broome
Released under the GNU GPL, see the COPYING file Released under the GNU GPL, see the COPYING file
in the source distribution for its full text. in the source distribution for its full text.
*/ */
...@@ -9,13 +10,23 @@ in the source distribution for its full text. ...@@ -9,13 +10,23 @@ in the source distribution for its full text.
#include "CRT.h" #include "CRT.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#ifdef HAVE_EXECINFO_H
#include <execinfo.h>
#endif
void CRT_handleSIGSEGV(int sgn) { void CRT_handleSIGSEGV(int sgn) {
(void) sgn; (void) sgn;
CRT_done(); CRT_done();
fprintf(stderr, "\n\nhtop " VERSION " aborting.\n"); fprintf(stderr, "\n\nhtop " VERSION " aborting. Please report bug at http://hisham.hm/htop\n");
fprintf(stderr, "\nUnfortunately, you seem to be using an unsupported platform!"); #ifdef HAVE_EXECINFO_H
fprintf(stderr, "\nPlease contact your platform package maintainer!\n\n"); 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(); abort();
} }
...@@ -5,11 +5,14 @@ ...@@ -5,11 +5,14 @@
/* /*
htop - SolarisCRT.h htop - SolarisCRT.h
(C) 2014 Hisham H. Muhammad (C) 2014 Hisham H. Muhammad
(C) 2018 Guy M. Broome
Released under the GNU GPL, see the COPYING file Released under the GNU GPL, see the COPYING file
in the source distribution for its full text. in the source distribution for its full text.
*/ */
void CRT_handleSIGSEGV(int sgn); #ifdef HAVE_EXECINFO_H
#endif
void CRT_handleSIGSEGV(int sgn);
#endif #endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment