Feature #17638 » ruby-cygwin-backtrace.patch
| configure.ac | ||
|---|---|---|
|
AS_IF([test "x$ac_cv_header_execinfo_h" = xyes], [
|
||
|
AC_CHECK_LIB([execinfo], [backtrace])
|
||
|
AC_CHECK_LIB([unwind], [unw_backtrace])
|
||
|
])])
|
||
|
])],
|
||
|
[*-cygwin*], [
|
||
|
AS_IF([test "x$ac_cv_func_sigaltstack" = xno], [
|
||
|
AC_CACHE_CHECK(for CaptureStackBackTrace, rb_cv_have_CaptureStackBackTrace, [
|
||
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||
|
#include <windows.h>
|
||
|
#define TRACE_SIZE 256
|
||
|
void *trace[TRACE_SIZE];
|
||
|
int
|
||
|
main()
|
||
|
{
|
||
|
CaptureStackBackTrace(0, TRACE_SIZE, trace, NULL);
|
||
|
return 0;
|
||
|
}
|
||
|
]])],
|
||
|
rb_cv_have_CaptureStackBackTrace=yes,
|
||
|
rb_cv_have_CaptureStackBackTrace=no)
|
||
|
])
|
||
|
AS_IF([test "$rb_cv_have_CaptureStackBackTrace" = yes], [
|
||
|
AC_DEFINE(HAVE_CAPTURESTACKBACKTRACE, 1)
|
||
|
])])])
|
||
|
AC_CHECK_FUNCS(backtrace)
|
||
|
AS_IF([test "x$ac_cv_func_backtrace" = xyes], [
|
||
|
-- a/vm_dump.c
|
||
|
++ b/vm_dump.c
|
||
| ... | ... | |
|
# undef HAVE_BACKTRACE
|
||
|
# define HAVE_BACKTRACE 0
|
||
|
# endif
|
||
|
#elif defined(__CYGWIN__) && defined(HAVE_CAPTURESTACKBACKTRACE) && \
|
||
|
defined(USE_LIBBACKTRACE)
|
||
|
# define HAVE_BACKTRACE 1
|
||
|
# include <windows.h>
|
||
|
# undef backtrace
|
||
|
# define backtrace(buffer, size) CaptureStackBackTrace(0, size, buffer, NULL)
|
||
|
#else
|
||
|
# define HAVE_BACKTRACE 0
|
||
|
#endif
|
||
- « Previous
- 1
- 2
- 3
- Next »