2014-11-24 20:55:49 +00:00
|
|
|
/*
|
|
|
|
htop - LinuxCRT.c
|
|
|
|
(C) 2014 Hisham H. Muhammad
|
2020-10-05 07:51:32 +00:00
|
|
|
Released under the GNU GPLv2, see the COPYING file
|
2014-11-24 20:55:49 +00:00
|
|
|
in the source distribution for its full text.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "config.h"
|
2020-09-08 12:28:15 +00:00
|
|
|
#include "LinuxCRT.h"
|
2014-11-24 20:55:49 +00:00
|
|
|
#include "CRT.h"
|
2020-09-09 22:17:59 +00:00
|
|
|
|
|
|
|
#include <signal.h>
|
2014-11-24 20:55:49 +00:00
|
|
|
#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
|
2020-08-22 05:47:11 +00:00
|
|
|
fprintf(stderr, "\n\nhtop " VERSION " aborting. Please report bug at https://htop.dev\n");
|
2014-11-24 20:55:49 +00:00
|
|
|
#ifdef HAVE_EXECINFO_H
|
2020-09-28 19:14:50 +00:00
|
|
|
size_t size = backtrace(backtraceArray, ARRAYSIZE(backtraceArray));
|
2014-11-24 20:55:49 +00:00
|
|
|
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!");
|
2016-01-02 17:11:26 +00:00
|
|
|
fprintf(stderr, "\nPlease contact your platform package maintainer!\n\n");
|
2014-11-24 20:55:49 +00:00
|
|
|
#endif
|
2020-09-09 22:17:59 +00:00
|
|
|
|
|
|
|
/* Call old sigsegv handler; may be default exit or third party one (e.g. ASAN) */
|
|
|
|
sigaction (SIGSEGV, &old_sigsegv_handler, NULL);
|
2014-11-24 20:55:49 +00:00
|
|
|
}
|