| Index: base/debug/stack_trace.cc
|
| diff --git a/base/debug/stack_trace.cc b/base/debug/stack_trace.cc
|
| index 43a23d95ac10ba0ca270a654cf1525a59b55ab58..48e2ccf048563276ed40d0fc6b32a0e98a6f84e0 100644
|
| --- a/base/debug/stack_trace.cc
|
| +++ b/base/debug/stack_trace.cc
|
| @@ -12,7 +12,7 @@
|
| #include "base/logging.h"
|
| #include "base/macros.h"
|
|
|
| -#if HAVE_TRACE_STACK_FRAME_POINTERS
|
| +#if HAVE_TRACE_STACK_FRAME_POINTERS()
|
|
|
| #if defined(OS_LINUX) || defined(OS_ANDROID)
|
| #include <pthread.h>
|
| @@ -28,14 +28,14 @@
|
| extern "C" void* __libc_stack_end;
|
| #endif
|
|
|
| -#endif // HAVE_TRACE_STACK_FRAME_POINTERS
|
| +#endif // HAVE_TRACE_STACK_FRAME_POINTERS()
|
|
|
| namespace base {
|
| namespace debug {
|
|
|
| namespace {
|
|
|
| -#if HAVE_TRACE_STACK_FRAME_POINTERS && !defined(OS_WIN)
|
| +#if HAVE_TRACE_STACK_FRAME_POINTERS()
|
|
|
| #if defined(__arm__) && defined(__GNUC__) && !defined(__clang__)
|
| // GCC and LLVM generate slightly different frames on ARM, see
|
| @@ -142,11 +142,11 @@ void* LinkStackFrames(void* fpp, void* parent_fp) {
|
| return prev_parent_fp;
|
| }
|
|
|
| -#endif // HAVE_TRACE_STACK_FRAME_POINTERS && !defined(OS_WIN)
|
| +#endif // HAVE_TRACE_STACK_FRAME_POINTERS()
|
|
|
| } // namespace
|
|
|
| -#if HAVE_TRACE_STACK_FRAME_POINTERS
|
| +#if HAVE_TRACE_STACK_FRAME_POINTERS()
|
| uintptr_t GetStackEnd() {
|
| #if defined(OS_ANDROID)
|
| // Bionic reads proc/maps on every call to pthread_getattr_np() when called
|
| @@ -194,7 +194,7 @@ uintptr_t GetStackEnd() {
|
| // Don't know how to get end of the stack.
|
| return 0;
|
| }
|
| -#endif // HAVE_TRACE_STACK_FRAME_POINTERS
|
| +#endif // HAVE_TRACE_STACK_FRAME_POINTERS()
|
|
|
| StackTrace::StackTrace() : StackTrace(arraysize(trace_)) {}
|
|
|
| @@ -220,23 +220,11 @@ std::string StackTrace::ToString() const {
|
| return stream.str();
|
| }
|
|
|
| -#if HAVE_TRACE_STACK_FRAME_POINTERS
|
| +#if HAVE_TRACE_STACK_FRAME_POINTERS()
|
|
|
| size_t TraceStackFramePointers(const void** out_trace,
|
| size_t max_depth,
|
| size_t skip_initial) {
|
| -// TODO(699863): Merge the frame-pointer based stack unwinder into the
|
| -// base::debug::StackTrace platform-specific implementation files.
|
| -#if defined(OS_WIN)
|
| - StackTrace stack(max_depth);
|
| - size_t count = 0;
|
| - const void* const* frames = stack.Addresses(&count);
|
| - if (count < skip_initial)
|
| - return 0u;
|
| - count -= skip_initial;
|
| - memcpy(out_trace, frames + skip_initial, count * sizeof(void*));
|
| - return count;
|
| -#elif defined(OS_POSIX)
|
| // Usage of __builtin_frame_address() enables frame pointers in this
|
| // function even if they are not enabled globally. So 'fp' will always
|
| // be valid.
|
| @@ -270,10 +258,8 @@ size_t TraceStackFramePointers(const void** out_trace,
|
| }
|
|
|
| return depth;
|
| -#endif
|
| }
|
|
|
| -#if !defined(OS_WIN)
|
| ScopedStackFrameLinker::ScopedStackFrameLinker(void* fp, void* parent_fp)
|
| : fp_(fp),
|
| parent_fp_(parent_fp),
|
| @@ -284,9 +270,8 @@ ScopedStackFrameLinker::~ScopedStackFrameLinker() {
|
| CHECK_EQ(parent_fp_, previous_parent_fp)
|
| << "Stack frame's parent pointer has changed!";
|
| }
|
| -#endif // !defined(OS_WIN)
|
|
|
| -#endif // HAVE_TRACE_STACK_FRAME_POINTERS
|
| +#endif // HAVE_TRACE_STACK_FRAME_POINTERS()
|
|
|
| } // namespace debug
|
| } // namespace base
|
|
|