Added check the conditions for building backtrace handler

(cherry picked from commit 35748811a4)
v3.5.13-sru
Alexander Golubev 11 years ago committed by Slávek Banko
parent 9d581b3f4c
commit 5bb41966db

@ -196,6 +196,7 @@ check_include_file( "termio.h" HAVE_TERMIO_H )
check_include_file( "unistd.h" HAVE_UNISTD_H )
check_include_file( "util.h" HAVE_UTIL_H )
check_include_file( "values.h" HAVE_VALUES_H )
check_include_file( "demangle.h" HAVE_DEMANGLE_H )
# FIXME I'm not sure if test TIME_WITH_SYS_TIME are correct
check_include_file( "sys/time.h" HAVE_SYS_TIME_H )

@ -650,6 +650,9 @@
/* Define to 1 if you have the <values.h> header file. */
#cmakedefine HAVE_VALUES_H 1
/* Define to 1 if you have the <demangle.h> header file from binutils package. */
#cmakedefine HAVE_DEMANGLE_H 1
/* Define, to enable volume management (Solaris 2.x), if you have -lvolmgt */
#undef HAVE_VOLMGT

@ -80,13 +80,18 @@ set( ${target}_SRCS
kdirnotify.cpp kdirnotify.skel kdirnotify_stub.cpp
observer.cpp ../misc/uiserver.stub observer.skel kemailsettings.cpp
kprotocolinfo.cpp renamedlg.cpp skipdlg.cpp kremoteencoding.cpp
kmimetypechooser.cpp backtrace_symbols.c
kmimetypechooser.cpp
)
if( HAVE_BACKTRACE AND HAVE_DEMANGLE_H )
list( APPEND ${target}_SRCS backtrace_symbols.c )
set( BACKTRACE_LIBRARY bfd )
endif( )
tde_add_library( ${target} STATIC_PIC AUTOMOC
SOURCES ${${target}_SRCS}
DEPENDENCIES dcopidl
LINK bfd
LINK ${BACKTRACE_LIBRARY}
)

@ -66,10 +66,10 @@
#endif
#endif
#ifndef NDEBUG
#ifdef HAVE_BACKTRACE
#ifndef NDEBUG
void print_trace()
{
#if defined(HAVE_BACKTRACE) && defined(HAVE_DEMANGLE_H)
void *array[10];
size_t size;
char **strings;
@ -85,9 +85,9 @@ void print_trace()
}
free (strings);
#endif // defined(HAVE_BACKTRACE) && defined(HAVE_DEMANGLE_H)
}
#endif
#endif
#endif // NDEBUG
using namespace KIO;
@ -765,9 +765,7 @@ void SlaveBase::sigsegv_handler(int sig)
snprintf(buffer, sizeof(buffer), "kioslave: ####### CRASH ###### protocol = %s pid = %d signal = %d\n", s_protocol, getpid(), sig);
write(2, buffer, strlen(buffer));
#ifndef NDEBUG
#ifdef HAVE_BACKTRACE
print_trace();
#endif
#endif
::exit(1);
#endif

Loading…
Cancel
Save