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 |