Feature #17752 » ruby-USE_BACKTRACE.patch
vm_dump.c | ||
---|---|---|
#endif
|
||
#if defined(HAVE_BACKTRACE)
|
||
# define USE_BACKTRACE 1
|
||
# ifdef HAVE_LIBUNWIND
|
||
# undef backtrace
|
||
# define backtrace unw_backtrace
|
||
... | ... | |
return n;
|
||
}
|
||
# elif defined(BROKEN_BACKTRACE)
|
||
# undef HAVE_BACKTRACE
|
||
# define HAVE_BACKTRACE 0
|
||
# undef USE_BACKTRACE
|
||
# define USE_BACKTRACE 0
|
||
# endif
|
||
#else
|
||
# define HAVE_BACKTRACE 0
|
||
# define USE_BACKTRACE 0
|
||
#endif
|
||
#if HAVE_BACKTRACE
|
||
#if USE_BACKTRACE
|
||
# include <execinfo.h>
|
||
#elif defined(_WIN32)
|
||
# include <imagehlp.h>
|
||
... | ... | |
void
|
||
rb_print_backtrace(void)
|
||
{
|
||
#if HAVE_BACKTRACE
|
||
#if USE_BACKTRACE
|
||
#define MAX_NATIVE_TRACE 1024
|
||
static void *trace[MAX_NATIVE_TRACE];
|
||
int n = (int)backtrace(trace, MAX_NATIVE_TRACE);
|
||
... | ... | |
rb_dump_machine_register(ctx);
|
||
#if HAVE_BACKTRACE || defined(_WIN32)
|
||
#if USE_BACKTRACE || defined(_WIN32)
|
||
fprintf(stderr, "-- C level backtrace information "
|
||
"-------------------------------------------\n");
|
||
rb_print_backtrace();
|
||
fprintf(stderr, "\n");
|
||
#endif /* HAVE_BACKTRACE */
|
||
#endif /* USE_BACKTRACE */
|
||
if (other_runtime_info || vm) {
|
||
fprintf(stderr, "-- Other runtime information "
|