diff options
author | Alon Levy <alevy@redhat.com> | 2012-01-13 12:56:59 +0200 |
---|---|---|
committer | Alon Levy <alevy@redhat.com> | 2012-01-13 17:42:23 +0200 |
commit | c7f4e52000bfdd7a0f502abecd5da444c3709c38 (patch) | |
tree | 7f5cb3eada4ac859e2b491ccc909285242a0dff7 | |
parent | a9bf7497797ca24ae23e0c5e7f7e0a4a6096c309 (diff) | |
download | spice-c7f4e52000bfdd7a0f502abecd5da444c3709c38.tar.gz spice-c7f4e52000bfdd7a0f502abecd5da444c3709c38.tar.xz spice-c7f4e52000bfdd7a0f502abecd5da444c3709c38.zip |
common/backtrace: for mingw32 no pipe/wait_pid, just disable
-rw-r--r-- | common/backtrace.c | 25 | ||||
-rw-r--r-- | common/backtrace.h | 2 |
2 files changed, 23 insertions, 4 deletions
diff --git a/common/backtrace.c b/common/backtrace.c index 650dc1d7..6fabdf02 100644 --- a/common/backtrace.c +++ b/common/backtrace.c @@ -26,8 +26,12 @@ #include <stdlib.h> #include <stdio.h> #include <errno.h> +#include <unistd.h> #include <sys/types.h> +#ifndef __MINGW32__ #include <sys/wait.h> +#endif + #include "spice_common.h" #define GSTACK_PATH "/usr/bin/gstack" @@ -49,6 +53,10 @@ static void spice_backtrace_backtrace(void) } #endif +/* XXX perhaps gstack can be available in windows but pipe/waitpid isn't, + * so until it is ported properly just compile it out, we lose the + * backtrace only. */ +#ifndef __MINGW32__ static int spice_backtrace_gstack(void) { pid_t kidpid; @@ -104,11 +112,22 @@ static int spice_backtrace_gstack(void) } return 0; } +#else +static int spice_backtrace_gstack(void) +{ + /* empty failing implementation */ + return -1; +} +#endif + +void spice_backtrace(void) +{ + int ret = -1; -void spice_backtrace() { if (!access(GSTACK_PATH, X_OK)) { - spice_backtrace_gstack(); - } else { + ret = spice_backtrace_gstack(); + } + if (ret != 0) { spice_backtrace_backtrace(); } } diff --git a/common/backtrace.h b/common/backtrace.h index 8fcbb782..894c0277 100644 --- a/common/backtrace.h +++ b/common/backtrace.h @@ -23,7 +23,7 @@ SPICE_BEGIN_DECLS -#ifdef WIN32 +#if defined(WIN32) && !defined(__MINGW32__) #define spice_backtrace() #else void spice_backtrace(void); |