mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* vm_dump: FreeBSD ports' libexecinfo's backtrace(3) can't trace
beyond signal trampoline, and as described in r38342 it can't trace on -O because it see stack frame pointers. libunwind unw_backtrace see dwarf information in the binary and it works with -O (without frame pointers). * configure.in: remove r38342's hack and check libunwind. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e233ca15e0
commit
0b261c379b
3 changed files with 16 additions and 13 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
Tue Feb 19 06:04:06 2013 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* vm_dump: FreeBSD ports' libexecinfo's backtrace(3) can't trace
|
||||
beyond signal trampoline, and as described in r38342 it can't
|
||||
trace on -O because it see stack frame pointers.
|
||||
libunwind unw_backtrace see dwarf information in the binary
|
||||
and it works with -O (without frame pointers).
|
||||
|
||||
* configure.in: remove r38342's hack and check libunwind.
|
||||
|
||||
Tue Feb 19 04:26:29 2013 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* configure.in: check whether backtrace(3) works well or not.
|
||||
|
|
14
configure.in
14
configure.in
|
@ -2417,19 +2417,7 @@ AS_CASE(["$target_cpu-$target_os"],
|
|||
AC_CHECK_HEADERS([execinfo.h])
|
||||
if test "x$ac_cv_header_execinfo_h" = xyes; then
|
||||
AC_CHECK_LIB([execinfo], [backtrace])
|
||||
execinfo_frame_pointer=no
|
||||
RUBY_TRY_CFLAGS(-fno-omit-frame-pointer, [execinfo_frame_pointer=yes])
|
||||
if test "x$execinfo_frame_pointer" = xyes; then
|
||||
# optflags must be manipulated very carefully. For the
|
||||
# later cflagspat/cxxflagspat substitution to work, CFLAGS
|
||||
# and CXXFLAGS must start exactly with the value of
|
||||
# optflags.
|
||||
CFLAGS="${CFLAGS# }"; CFLAGS="${CFLAGS#"$optflags "}"
|
||||
CXXFLAGS="${CXXFLAGS# }"; CXXFLAGS="${CXXFLAGS#"$optflags "}"
|
||||
RUBY_APPEND_OPTION(optflags, -fno-omit-frame-pointer)
|
||||
CFLAGS=" $optflags $CFLAGS"
|
||||
CXXFLAGS=" $optflags $CXXFLAGS"
|
||||
fi
|
||||
AC_CHECK_LIB([unwind], [unw_backtrace])
|
||||
fi])
|
||||
AC_CHECK_FUNCS(backtrace)
|
||||
|
||||
|
|
|
@ -431,6 +431,11 @@ rb_vmdebug_thread_dump_state(VALUE self)
|
|||
# undef HAVE_BACKTRACE
|
||||
# define HAVE_BACKTRACE 0
|
||||
#endif
|
||||
#if HAVE_LIBUNWIND
|
||||
# define HAVE_BACKTRACE 1
|
||||
# undef backtrace
|
||||
# define backtrace unw_backtrace
|
||||
#endif
|
||||
#if HAVE_BACKTRACE
|
||||
# include <execinfo.h>
|
||||
#elif defined(_WIN32)
|
||||
|
|
Loading…
Reference in a new issue