1
1

* The MoreBacktrace code supplied by Apple doesn't work on 64 bit Intel

builds, so disable it there
  * On 10.4.8 (and possibly others), siginfo is NULL in the signal
    callback on 64 bit Intel builds, so account for that in the signal
    callback.

This commit was SVN r14045.
Этот коммит содержится в:
Brian Barrett 2007-03-16 21:27:19 +00:00
родитель 3982be852e
Коммит 01d6121c7f
2 изменённых файлов: 99 добавлений и 82 удалений

Просмотреть файл

@ -32,6 +32,13 @@ AC_DEFUN([MCA_backtrace_darwin_CONFIG],[
[backtrace_darwin_happy="yes"],
[backtrace_darwin_happy="no"])
case "${host}" in
i?86-*|x86_64*)
if test "$ac_cv_sizeof_long" = "8" ; then
backtrace_darwin_happy="no"
fi
esac
if test "$backtrace_darwin_happy" = "yes" ; then
if test "$OMPI_C_GCC_INLINE_ASSEMBLY" = "0" ; then
backtrace_darwin_happy="no"

Просмотреть файл

@ -101,6 +101,7 @@ static void opal_show_stackframe (int signo, siginfo_t * info, void * p)
size -= ret;
tmp += ret;
if (NULL != info) {
switch (signo)
{
case SIGILL:
@ -290,7 +291,8 @@ static void opal_show_stackframe (int signo, siginfo_t * info, void * p)
tmp += ret;
break;
}
case SIGCHLD: {
case SIGCHLD:
{
ret = snprintf(tmp, size, HOSTFORMAT "Sending PID: %d, Sending UID: %d, Status: %d\n",
stacktrace_hostname, getpid(),
info->si_pid, info->si_uid, info->si_status);
@ -299,7 +301,8 @@ static void opal_show_stackframe (int signo, siginfo_t * info, void * p)
break;
}
#ifdef SIGPOLL
case SIGPOLL: {
case SIGPOLL:
{
#ifdef HAVE_SIGINFO_T_SI_FD
ret = snprintf(tmp, size, HOSTFORMAT "Band event: %ld, File Descriptor : %d\n",
stacktrace_hostname, getpid(), info->si_band, info->si_fd);
@ -315,6 +318,13 @@ static void opal_show_stackframe (int signo, siginfo_t * info, void * p)
}
#endif
}
} else {
ret = snprintf(tmp, size,
HOSTFORMAT "siginfo is NULL, additional information unavailable\n",
stacktrace_hostname, getpid());
size -= ret;
tmp += ret;
}
/* write out the signal information generated above */
write(fileno(stderr), print_buffer, sizeof(print_buffer)-size);