mirror of https://github.com/xzeldon/htop.git
Enh: Add support for backtrace using execinfo
This commit is contained in:
parent
cba695961a
commit
cb7a06379d
|
@ -54,7 +54,7 @@ freebsd/FreeBSDProcess.h freebsd/FreeBSDCRT.h freebsd/Battery.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if HTOP_DRAGONFLYBSD
|
if HTOP_DRAGONFLYBSD
|
||||||
htop_LDFLAGS += -lkvm -lkinfo
|
htop_LDFLAGS += -lkvm -lkinfo -lexecinfo
|
||||||
myhtopplatsources = dragonflybsd/Platform.c dragonflybsd/DragonFlyBSDProcessList.c \
|
myhtopplatsources = dragonflybsd/Platform.c dragonflybsd/DragonFlyBSDProcessList.c \
|
||||||
dragonflybsd/DragonFlyBSDProcess.c dragonflybsd/DragonFlyBSDCRT.c dragonflybsd/Battery.c
|
dragonflybsd/DragonFlyBSDProcess.c dragonflybsd/DragonFlyBSDCRT.c dragonflybsd/Battery.c
|
||||||
|
|
||||||
|
|
|
@ -10,12 +10,26 @@ 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");
|
||||||
|
#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");
|
||||||
|
#else
|
||||||
fprintf(stderr, "\nPlease contact your DragonFlyBSD package maintainer!\n\n");
|
fprintf(stderr, "\nPlease contact your DragonFlyBSD package maintainer!\n\n");
|
||||||
|
#endif
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,9 @@ 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.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_EXECINFO_H
|
||||||
|
#endif
|
||||||
|
|
||||||
void CRT_handleSIGSEGV(int sgn);
|
void CRT_handleSIGSEGV(int sgn);
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue