summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/sanitizer_win.cc
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2013-10-12 12:23:00 +0000
committerAlexey Samsonov <samsonov@google.com>2013-10-12 12:23:00 +0000
commit80175018541984bdcfe6a304bb189bd30592fa8a (patch)
tree74bd6e190fc6b06439646881fc201a3262082cd6 /lib/sanitizer_common/sanitizer_win.cc
parent70db33e143303752c7fe8800d15b5b31066b1e0d (diff)
downloadcompiler-rt-80175018541984bdcfe6a304bb189bd30592fa8a.tar.gz
compiler-rt-80175018541984bdcfe6a304bb189bd30592fa8a.tar.bz2
compiler-rt-80175018541984bdcfe6a304bb189bd30592fa8a.tar.xz
[Sanitizer] Turn GetStackTrace() into StackTrace::Unwind()
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192533 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_win.cc')
-rw-r--r--lib/sanitizer_common/sanitizer_win.cc12
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/sanitizer_common/sanitizer_win.cc b/lib/sanitizer_common/sanitizer_win.cc
index 49028bc2..f42e92f1 100644
--- a/lib/sanitizer_common/sanitizer_win.cc
+++ b/lib/sanitizer_common/sanitizer_win.cc
@@ -376,18 +376,18 @@ void GetThreadStackAndTls(bool main, uptr *stk_addr, uptr *stk_size,
#endif
}
-void GetStackTrace(StackTrace *stack, uptr max_s, uptr pc, uptr bp,
- uptr stack_top, uptr stack_bottom, bool fast) {
+void StackTrace::Unwind(uptr max_depth, uptr pc, uptr bp, uptr stack_top,
+ uptr stack_bottom, bool fast) {
(void)fast;
(void)stack_top;
(void)stack_bottom;
- stack->max_size = max_s;
+ max_size = max_depth;
void *tmp[kStackTraceMax];
// FIXME: CaptureStackBackTrace might be too slow for us.
// FIXME: Compare with StackWalk64.
// FIXME: Look at LLVMUnhandledExceptionFilter in Signals.inc
- uptr cs_ret = CaptureStackBackTrace(1, stack->max_size, tmp, 0);
+ uptr cs_ret = CaptureStackBackTrace(1, max_size, tmp, 0);
uptr offset = 0;
// Skip the RTL frames by searching for the PC in the stacktrace.
// FIXME: this doesn't work well for the malloc/free stacks yet.
@@ -398,9 +398,7 @@ void GetStackTrace(StackTrace *stack, uptr max_s, uptr pc, uptr bp,
break;
}
- stack->size = cs_ret - offset;
- for (uptr i = 0; i < stack->size; i++)
- stack->trace[i] = (uptr)tmp[i + offset];
+ CopyFrom((uptr*)&tmp[offset], cs_ret - offset);
}
void MaybeOpenReportFile() {